From ede1049911eb726a18ee4ac1770c8c39a72feb89 Mon Sep 17 00:00:00 2001 From: Karol Latecki Date: Tue, 4 Oct 2022 13:54:27 +0200 Subject: [PATCH] scripts/nvmf_perf: move get_nvme_devices to SPDK Target These functions are used only by SPDKTarget class, so move them out of common module. Signed-off-by: Karol Latecki Change-Id: I489443f76fbdf4cb3def19a557f4a953a098bbce Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14853 Tested-by: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: Tomasz Zawadzki Reviewed-by: Michal Berger Reviewed-by: Krzysztof Karas --- scripts/perf/nvmf/common.py | 16 ---------------- scripts/perf/nvmf/run_nvmf.py | 14 +++++++++++--- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/scripts/perf/nvmf/common.py b/scripts/perf/nvmf/common.py index c95044d94..d6de742e5 100644 --- a/scripts/perf/nvmf/common.py +++ b/scripts/perf/nvmf/common.py @@ -7,22 +7,6 @@ from collections import OrderedDict from json.decoder import JSONDecodeError -def get_nvme_devices_count(): - output = get_nvme_devices_bdf() - return len(output) - - -def get_nvme_devices_bdf(): - print("Getting BDFs for NVMe section") - output = check_output("rootdir=$PWD; \ - source test/common/autotest_common.sh; \ - get_nvme_bdfs 01 08 02", - executable="/bin/bash", shell=True) - output = [str(x, encoding="utf-8") for x in output.split()] - print("Done getting BDFs") - return output - - def read_json_stats(file): with open(file, "r") as json_data: data = json.load(json_data) diff --git a/scripts/perf/nvmf/run_nvmf.py b/scripts/perf/nvmf/run_nvmf.py index bfd751d1c..3b8d77788 100755 --- a/scripts/perf/nvmf/run_nvmf.py +++ b/scripts/perf/nvmf/run_nvmf.py @@ -980,6 +980,14 @@ class SPDKTarget(Target): self.log.info("====DSA settings:====") self.log.info("DSA enabled: %s" % (self.enable_dsa)) + def get_nvme_devices_count(self): + return len(self.get_nvme_devices()) + + def get_nvme_devices(self): + bdev_subsys_json_obj = json.loads(self.exec_cmd([os.path.join(self.spdk_dir, "scripts/gen_nvme.sh")])) + bdev_bdfs = [bdev["params"]["traddr"] for bdev in bdev_subsys_json_obj["config"]] + return bdev_bdfs + @staticmethod def get_num_cores(core_mask): if "0x" in core_mask: @@ -1037,7 +1045,7 @@ class SPDKTarget(Target): def spdk_tgt_add_nvme_conf(self, req_num_disks=None): self.log.info("Adding NVMe bdevs to config via RPC") - bdfs = get_nvme_devices_bdf() + bdfs = self.get_nvme_devices() bdfs = [b.replace(":", ".") for b in bdfs] if req_num_disks: @@ -1056,7 +1064,7 @@ class SPDKTarget(Target): def spdk_tgt_add_subsystem_conf(self, ips=None, req_num_disks=None): self.log.info("Adding subsystems to config") if not req_num_disks: - req_num_disks = get_nvme_devices_count() + req_num_disks = self.get_nvme_devices_count() for ip, bdev_num in self.spread_bdevs(req_num_disks): port = str(4420 + bdev_num) @@ -1097,7 +1105,7 @@ class SPDKTarget(Target): if self.null_block: self.subsys_no = 1 else: - self.subsys_no = get_nvme_devices_count() + self.subsys_no = self.get_nvme_devices_count() self.log.info("Starting SPDK NVMeOF Target process") nvmf_app_path = os.path.join(self.spdk_dir, "build/bin/nvmf_tgt") proc = subprocess.Popen([nvmf_app_path, "--wait-for-rpc", "-m", self.core_mask])