[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 11/15] block/nvme: Trace controller capabilities
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH 11/15] block/nvme: Trace controller capabilities |
Date: |
Wed, 14 Oct 2020 17:58:06 +0200 |
Controllers have different capabilities and report them in the
CAP register. We are particularly interested by the page size
limits.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
block/nvme.c | 10 ++++++++++
block/trace-events | 1 +
2 files changed, 11 insertions(+)
diff --git a/block/nvme.c b/block/nvme.c
index 11fba2d754d..fad727416ee 100644
--- a/block/nvme.c
+++ b/block/nvme.c
@@ -725,6 +725,16 @@ static int nvme_init(BlockDriverState *bs, const char
*device, int namespace,
* Initialization". */
cap = le64_to_cpu(regs->cap);
+ trace_nvme_controller_capability("Maximum Queue Entries Supported",
+ NVME_CAP_MQES(cap));
+ trace_nvme_controller_capability("Contiguous Queues Required",
+ NVME_CAP_CQR(cap));
+ trace_nvme_controller_capability("Subsystem Reset Supported",
+ NVME_CAP_NSSRS(cap));
+ trace_nvme_controller_capability("Memory Page Size Minimum",
+ NVME_CAP_MPSMIN(cap));
+ trace_nvme_controller_capability("Memory Page Size Maximum",
+ NVME_CAP_MPSMAX(cap));
if (!NVME_CAP_CSS(cap)) {
error_setg(errp, "Device doesn't support NVMe command set");
ret = -EINVAL;
diff --git a/block/trace-events b/block/trace-events
index 6694c23e1c1..8a24d7a8650 100644
--- a/block/trace-events
+++ b/block/trace-events
@@ -134,6 +134,7 @@ qed_aio_write_postfill(void *s, void *acb, uint64_t start,
size_t len, uint64_t
qed_aio_write_main(void *s, void *acb, int ret, uint64_t offset, size_t len)
"s %p acb %p ret %d offset %"PRIu64" len %zu"
# nvme.c
+nvme_controller_capability(const char *desc, uint64_t value) "%s: %"PRIu64
nvme_kick(void *s, unsigned q_index) "s %p q #%u"
nvme_dma_flush_queue_wait(void *s) "s %p"
nvme_error(int cmd_specific, int sq_head, int sqid, int cid, int status)
"cmd_specific %d sq_head %d sqid %d cid %d status 0x%x"
--
2.26.2
- [PATCH 01/15] block/nvme: Move nvme_poll_cb() earlier, (continued)
- [PATCH 01/15] block/nvme: Move nvme_poll_cb() earlier, Philippe Mathieu-Daudé, 2020/10/14
- [PATCH 03/15] block/nvme: Use unsigned integer for queue counter/size, Philippe Mathieu-Daudé, 2020/10/14
- [PATCH 04/15] block/nvme: Improve nvme_free_req_queue_wait() trace information, Philippe Mathieu-Daudé, 2020/10/14
- [PATCH 05/15] block/nvme: Trace queue pair creation/deletion, Philippe Mathieu-Daudé, 2020/10/14
- [PATCH 06/15] block/nvme: Make nvme_identify() return boolean indicating error, Philippe Mathieu-Daudé, 2020/10/14
- [PATCH 07/15] block/nvme: Make nvme_init_queue() return boolean indicating error, Philippe Mathieu-Daudé, 2020/10/14
- [PATCH 09/15] block/nvme: Introduce Completion Queue definitions, Philippe Mathieu-Daudé, 2020/10/14
- [PATCH 10/15] block/nvme: Use definitions instead of magic values in add_io_queue(), Philippe Mathieu-Daudé, 2020/10/14
- [PATCH 08/15] block/nvme: Pass AioContext argument to nvme_add_io_queue(), Philippe Mathieu-Daudé, 2020/10/14
- [PATCH 12/15] block/nvme: Simplify device reset, Philippe Mathieu-Daudé, 2020/10/14
- [PATCH 11/15] block/nvme: Trace controller capabilities,
Philippe Mathieu-Daudé <=
- [PATCH 13/15] block/nvme: Simplify ADMIN queue access, Philippe Mathieu-Daudé, 2020/10/14
- [PATCH 15/15] block/nvme: Set request_alignment at initialization, Philippe Mathieu-Daudé, 2020/10/14
- [PATCH 14/15] block/nvme: Report warning with warn_report(), Philippe Mathieu-Daudé, 2020/10/14