From a8d86cb3130c28ad020735607450c737c1cf4ce8 Mon Sep 17 00:00:00 2001 From: Jim Harris Date: Tue, 18 Apr 2023 00:05:57 +0000 Subject: [PATCH] examples/nvme/perf: pick num_requests based on qpairs per ns If we want to test something like 512 qpairs, with qd = 8 for each, you need to specify -q 4096 -P 512. Then those 4096 I/O are spread across the 512 qpairs, to get qd = 8 for each qpair.. But currently it ends up also allocating 4096 num_io_requests for each qpair which is a huge waste. We need to instead base the num_io_requests on the effective queue depth for each of the qpairs. Signed-off-by: Jim Harris Change-Id: I3ec0f4d9ab94388bf980c0b0439790847161ec12 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17620 Reviewed-by: Konrad Sztyber Reviewed-by: Aleksey Marchuk Tested-by: SPDK CI Jenkins Reviewed-by: Shuhei Matsumoto --- examples/nvme/perf/perf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/nvme/perf/perf.c b/examples/nvme/perf/perf.c index 0894df133..698618a5f 100644 --- a/examples/nvme/perf/perf.c +++ b/examples/nvme/perf/perf.c @@ -1265,7 +1265,7 @@ register_ns(struct spdk_nvme_ctrlr *ctrlr, struct spdk_nvme_ns *ns) entry->fn_table = &nvme_fn_table; entry->u.nvme.ctrlr = ctrlr; entry->u.nvme.ns = ns; - entry->num_io_requests = g_queue_depth * entries; + entry->num_io_requests = entries * spdk_divide_round_up(g_queue_depth, g_nr_io_queues_per_ns); entry->size_in_ios = ns_size / g_io_size_bytes; entry->io_size_blocks = g_io_size_bytes / sector_size;