Add cpu_frequency param for NVMeOF benchmark tests
Signed-off-by: Maciej Wawryk <maciejx.wawryk@intel.com> Change-Id: Id594da091d7bcd5d23a752ccfab9bfa5b7726b49 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1113 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Karol Latecki <karol.latecki@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
This commit is contained in:
parent
e068db83f1
commit
0eab351528
@ -202,7 +202,7 @@ class Target(Server):
|
|||||||
|
|
||||||
|
|
||||||
class Initiator(Server):
|
class Initiator(Server):
|
||||||
def __init__(self, name, username, password, mode, nic_ips, ip, transport="rdma",
|
def __init__(self, name, username, password, mode, nic_ips, ip, transport="rdma", cpu_frequency=None,
|
||||||
nvmecli_bin="nvme", workspace="/tmp/spdk", cpus_allowed=None, fio_bin="/usr/src/fio/fio"):
|
nvmecli_bin="nvme", workspace="/tmp/spdk", cpus_allowed=None, fio_bin="/usr/src/fio/fio"):
|
||||||
|
|
||||||
super(Initiator, self).__init__(name, username, password, mode, nic_ips, transport)
|
super(Initiator, self).__init__(name, username, password, mode, nic_ips, transport)
|
||||||
@ -211,12 +211,14 @@ class Initiator(Server):
|
|||||||
self.spdk_dir = workspace
|
self.spdk_dir = workspace
|
||||||
self.fio_bin = fio_bin
|
self.fio_bin = fio_bin
|
||||||
self.cpus_allowed = cpus_allowed
|
self.cpus_allowed = cpus_allowed
|
||||||
|
self.cpu_frequency = cpu_frequency
|
||||||
self.nvmecli_bin = nvmecli_bin
|
self.nvmecli_bin = nvmecli_bin
|
||||||
self.ssh_connection = paramiko.SSHClient()
|
self.ssh_connection = paramiko.SSHClient()
|
||||||
self.ssh_connection.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
self.ssh_connection.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||||
self.ssh_connection.connect(self.ip, username=self.username, password=self.password)
|
self.ssh_connection.connect(self.ip, username=self.username, password=self.password)
|
||||||
self.remote_call("sudo rm -rf %s/nvmf_perf" % self.spdk_dir)
|
self.remote_call("sudo rm -rf %s/nvmf_perf" % self.spdk_dir)
|
||||||
self.remote_call("mkdir -p %s" % self.spdk_dir)
|
self.remote_call("mkdir -p %s" % self.spdk_dir)
|
||||||
|
self.set_cpu_frequency()
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
self.ssh_connection.close()
|
self.ssh_connection.close()
|
||||||
@ -354,10 +356,22 @@ runtime={run_time}
|
|||||||
|
|
||||||
return os.path.join(self.spdk_dir, "nvmf_perf", fio_config_filename)
|
return os.path.join(self.spdk_dir, "nvmf_perf", fio_config_filename)
|
||||||
|
|
||||||
|
def set_cpu_frequency(self):
|
||||||
|
if self.cpu_frequency is not None:
|
||||||
|
try:
|
||||||
|
self.remote_call('sudo cpupower frequency-set -g userspace')
|
||||||
|
self.remote_call('sudo cpupower frequency-set -f %s' % self.cpu_frequency)
|
||||||
|
except Exception:
|
||||||
|
self.log_print("ERROR: cpu_frequency will not work when intel_pstate is enabled!")
|
||||||
|
sys.exit()
|
||||||
|
else:
|
||||||
|
self.log_print("WARNING: you have disabled intel_pstate and using default cpu governance.")
|
||||||
|
|
||||||
def run_fio(self, fio_config_file, run_num=None):
|
def run_fio(self, fio_config_file, run_num=None):
|
||||||
job_name, _ = os.path.splitext(fio_config_file)
|
job_name, _ = os.path.splitext(fio_config_file)
|
||||||
self.log_print("Starting FIO run for job: %s" % job_name)
|
self.log_print("Starting FIO run for job: %s" % job_name)
|
||||||
self.log_print("Using FIO: %s" % self.fio_bin)
|
self.log_print("Using FIO: %s" % self.fio_bin)
|
||||||
|
|
||||||
if run_num:
|
if run_num:
|
||||||
for i in range(1, run_num + 1):
|
for i in range(1, run_num + 1):
|
||||||
output_filename = job_name + "_run_" + str(i) + "_" + self.name + ".json"
|
output_filename = job_name + "_run_" + str(i) + "_" + self.name + ".json"
|
||||||
|
Loading…
Reference in New Issue
Block a user