From f1d0fc75cf2e18dc86eb9545ab4626262b716373 Mon Sep 17 00:00:00 2001 From: Karol Latecki Date: Thu, 12 Dec 2019 11:18:36 +0100 Subject: [PATCH] scripts/perf: use additional kernel NVMe-oF initiator params Add configuration option "extra params" to run kernel initiator with nvme connect options like -i, -I, -D, etc. Change-Id: I01d9fd0ed15dc5607f0c0f58d97581c5e0b821ba Signed-off-by: Karol Latecki Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/477767 Community-CI: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: Shuhei Matsumoto Reviewed-by: Maciej Wawryk Reviewed-by: Pawel Kaminski Tested-by: SPDK CI Jenkins --- scripts/perf/nvmf/README.md | 3 +++ scripts/perf/nvmf/config.json | 3 ++- scripts/perf/nvmf/run_nvmf.py | 9 ++++++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/scripts/perf/nvmf/README.md b/scripts/perf/nvmf/README.md index 978154092..4fe54b0ac 100644 --- a/scripts/perf/nvmf/README.md +++ b/scripts/perf/nvmf/README.md @@ -54,6 +54,9 @@ by default. Not used if "mode" is set to "spdk". ### fio_bin Path to the fio binary that will be used to compile SPDK and run the test. If not specified, then the script will use /usr/src/fio/fio as the default. +### extra_params +Space separated string with additional settings for "nvme connect" command +other than -t, -s, -n and -a. ## fio Fio job parameters. diff --git a/scripts/perf/nvmf/config.json b/scripts/perf/nvmf/config.json index 680cba850..d8b16be93 100644 --- a/scripts/perf/nvmf/config.json +++ b/scripts/perf/nvmf/config.json @@ -17,7 +17,8 @@ "nic_ips": ["192.0.1.1"], "mode": "spdk", "nvmecli_dir": "/path/to/nvmecli", - "fio_dir": "/path/to/fio binary" + "fio_dir": "/path/to/fio binary", + "extra_params": "Extra nvme connect params" }, "initiator2": { "ip": "10.0.0.2", diff --git a/scripts/perf/nvmf/run_nvmf.py b/scripts/perf/nvmf/run_nvmf.py index 55664ff42..5f216e987 100755 --- a/scripts/perf/nvmf/run_nvmf.py +++ b/scripts/perf/nvmf/run_nvmf.py @@ -573,6 +573,10 @@ class KernelInitiator(Initiator): super(KernelInitiator, self).__init__(name, username, password, mode, nic_ips, ip, transport, fio_bin=fio_bin) + self.extra_params = "" + if kwargs["extra_params"]: + self.extra_params = kwargs["extra_params"] + def __del__(self): self.ssh_connection.close() @@ -581,7 +585,10 @@ class KernelInitiator(Initiator): self.log_print("Below connection attempts may result in error messages, this is expected!") for subsystem in subsystems: self.log_print("Trying to connect %s %s %s" % subsystem) - self.remote_call("sudo %s connect -t %s -s %s -n %s -a %s" % (self.nvmecli_bin, self.transport, *subsystem)) + self.remote_call("sudo %s connect -t %s -s %s -n %s -a %s %s" % (self.nvmecli_bin, + self.transport, + *subsystem, + self.extra_params)) time.sleep(2) def kernel_init_disconnect(self, address_list, subsys_no):