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 <maciejx.wawryk@intel.com>
Change-Id: Iad4e8bf7cd8a614ada8f443a8b1036dc2c4803e4
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1173
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
This commit is contained in:
Maciej Wawryk 2020-03-06 11:02:28 +01:00 committed by Tomasz Zawadzki
parent 0eab351528
commit 0ebd0dce19

View File

@ -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