From 0ebd0dce19273232a5de929d17104bc8b8c99bba Mon Sep 17 00:00:00 2001 From: Maciej Wawryk Date: Fri, 6 Mar 2020 11:02:28 +0100 Subject: [PATCH] Add subsystem division in Kernel initiator This will allow us to use num_cores and cpus_allowed option also in Kernel initiator side. Signed-off-by: Maciej Wawryk Change-Id: Iad4e8bf7cd8a614ada8f443a8b1036dc2c4803e4 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1173 Tested-by: SPDK CI Jenkins Reviewed-by: Shuhei Matsumoto Reviewed-by: Aleksey Marchuk Reviewed-by: Karol Latecki --- scripts/perf/nvmf/run_nvmf.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/scripts/perf/nvmf/run_nvmf.py b/scripts/perf/nvmf/run_nvmf.py index 6c3e2089b..0a4ebab0a 100755 --- a/scripts/perf/nvmf/run_nvmf.py +++ b/scripts/perf/nvmf/run_nvmf.py @@ -665,10 +665,22 @@ class KernelInitiator(Initiator): nvme_list = [x for x in out.split("\n") if "nvme" in x] filename_section = "" - for i, nvme in enumerate(nvme_list): - filename_section = "\n".join([filename_section, - "[filename%s]" % i, - "filename=%s" % nvme]) + filenames = ["nvme%sn1" % x for x in range(0, len(nvme_list))] + nvme_per_split = int(len(nvme_list) / threads) + remainder = len(nvme_list) % threads + iterator = iter(filenames) + result = [] + for i in range(threads): + result.append([]) + for j in range(nvme_per_split): + result[i].append(next(iterator)) + if remainder: + result[i].append(next(iterator)) + remainder -= 1 + for i, r in enumerate(result): + header = "[filename%s]" % i + disks = "\n".join(["filename=/dev/%s" % x for x in r]) + filename_section = "\n".join([filename_section, header, disks]) return filename_section