From 27a6677a845ce9153923e927df2461c83986432c Mon Sep 17 00:00:00 2001 From: Alla Kiseleva Date: Thu, 6 Feb 2020 14:19:52 +0000 Subject: [PATCH] perf: Add NSID in perf output information Currently an option is implemented to monitor a correlation between the core and namespace. Previously: ================================================================== Device Information RDMA (addr:1.1.75.2 subnqn:nqn.2016-06.io.spdk:cnode1 from core 0: RDMA (addr:1.1.75.2 subnqn:nqn.2016-06.io.spdk:cnode1 from core 0: ================================================================== Now: ======================================================================== Device Information RDMA (addr:1.1.75.2 subnqn:nqn.2016-06.io.spdk:cnode1 NSID 1 from core 0: RDMA (addr:1.1.75.2 subnqn:nqn.2016-06.io.spdk:cnode1 NSID 2 from core 0: ======================================================================== Signed-off-by: Alla Kiseleva --- examples/nvme/perf/perf.c | 28 ++++++++++++++++++++++------ isa-l | 1 - 2 files changed, 22 insertions(+), 7 deletions(-) delete mode 160000 isa-l diff --git a/examples/nvme/perf/perf.c b/examples/nvme/perf/perf.c index 1268dc1ca4d..8e1612b2c96 100644 --- a/examples/nvme/perf/perf.c +++ b/examples/nvme/perf/perf.c @@ -632,27 +632,42 @@ static const struct ns_fn_table nvme_fn_table = { .cleanup_ns_worker_ctx = nvme_cleanup_ns_worker_ctx, }; -static void +static int build_nvme_name(char *name, size_t length, struct spdk_nvme_ctrlr *ctrlr) { const struct spdk_nvme_transport_id *trid; + int res = 0; trid = spdk_nvme_ctrlr_get_transport_id(ctrlr); switch (trid->trtype) { case SPDK_NVME_TRANSPORT_PCIE: - snprintf(name, length, "PCIE (%s)", trid->traddr); + res = snprintf(name, length, "PCIE (%s)", trid->traddr); break; case SPDK_NVME_TRANSPORT_RDMA: - snprintf(name, length, "RDMA (addr:%s subnqn:%s)", trid->traddr, trid->subnqn); + res = snprintf(name, length, "RDMA (addr:%s subnqn:%s)", trid->traddr, trid->subnqn); break; case SPDK_NVME_TRANSPORT_TCP: - snprintf(name, length, "TCP (addr:%s subnqn:%s)", trid->traddr, trid->subnqn); + res = snprintf(name, length, "TCP (addr:%s subnqn:%s)", trid->traddr, trid->subnqn); break; + default: fprintf(stderr, "Unknown transport type %d\n", trid->trtype); break; } + return res; +} + +static void +build_nvme_ns_name(char *name, size_t length, struct spdk_nvme_ctrlr *ctrlr, uint32_t nsid) +{ + int res = 0; + + res = build_nvme_name(name, length, ctrlr); + if (res > 0) { + snprintf(name + res - 1, length - res + 1, " NSID %d", nsid); + } + } static void @@ -747,6 +762,7 @@ register_ns(struct spdk_nvme_ctrlr *ctrlr, struct spdk_nvme_ns *ns) } build_nvme_name(entry->name, sizeof(entry->name), ctrlr); + build_nvme_ns_name(entry->name, sizeof(entry->name), ctrlr, spdk_nvme_ns_get_id(ns)); g_num_namespaces++; entry->next = g_namespaces; @@ -1243,7 +1259,7 @@ print_performance(void) worker = worker->next; } - printf("========================================================\n"); + printf("==========================================================================\n"); printf("%*s\n", max_strlen + 60, "Latency(us)"); printf("%-*s: %10s %10s %10s %10s %10s\n", max_strlen + 13, "Device Information", "IOPS", "MiB/s", "Average", "min", "max"); @@ -1283,7 +1299,7 @@ print_performance(void) if (ns_count != 0 && total_io_completed) { sum_ave_latency = ((double)total_io_tsc / total_io_completed) * 1000 * 1000 / g_tsc_rate; - printf("========================================================\n"); + printf("==========================================================================\n"); printf("%-*s: %10.2f %10.2f %10.2f %10.2f %10.2f\n", max_strlen + 13, "Total", total_io_per_second, total_mb_per_second, sum_ave_latency, min_latency_so_far, max_latency_so_far); diff --git a/isa-l b/isa-l deleted file mode 160000 index f3993f5c0b6..00000000000 --- a/isa-l +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f3993f5c0b69118a229c2dfbb360515cd34a24e6