Commit 632703f6 authored by Maciej Wawryk's avatar Maciej Wawryk Committed by Tomasz Zawadzki
Browse files

scripts/nvmf: Capture configuration in perf tests



Signed-off-by: default avatarMaciej Wawryk <maciejx.wawryk@intel.com>
Change-Id: I343e568f3c4f6d16a7159c8cdc460df2d2c842ca
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5252


Community-CI: Broadcom CI
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarKarol Latecki <karol.latecki@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 150a29cc
Loading
Loading
Loading
Loading
+31 −0
Original line number Diff line number Diff line
@@ -34,6 +34,9 @@ class Server:
    def log_print(self, msg):
        print("[%s] %s" % (self.name, msg), flush=True)

    def get_uncommented_lines(self, lines):
        return [l for l in lines if l and not l.startswith('#')]


class Target(Server):
    def __init__(self, name, username, password, mode, nic_ips, transport="rdma",
@@ -62,6 +65,7 @@ class Target(Server):

        self.script_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
        self.spdk_dir = os.path.abspath(os.path.join(self.script_dir, "../../../"))
        self.sys_config()

    def zip_spdk_sources(self, spdk_dir, dest_file):
        self.log_print("Zipping SPDK source directory")
@@ -279,6 +283,20 @@ class Target(Server):
        rpc.env.env_dpdk_get_mem_stats
        os.rename("/tmp/spdk_mem_dump.txt", "%s/spdk_mem_dump.txt" % (results_dir))

    def sys_config(self):
        self.log_print("====Kernel release:====")
        self.log_print(os.uname().release)
        self.log_print("====Kernel command line:====")
        with open('/proc/cmdline') as f:
            cmdline = f.readlines()
            self.log_print('\n'.join(self.get_uncommented_lines(cmdline)))
        self.log_print("====sysctl conf:====")
        with open('/etc/sysctl.conf') as f:
            sysctl = f.readlines()
            self.log_print('\n'.join(self.get_uncommented_lines(sysctl)))
        self.log_print("====Cpu power info:====")
        subprocess.run("cpupower frequency-info", shell=True, check=True)


class Initiator(Server):
    def __init__(self, name, username, password, mode, nic_ips, ip, transport="rdma", cpu_frequency=None,
@@ -302,6 +320,7 @@ class Initiator(Server):
        self.remote_call("sudo rm -rf %s/nvmf_perf" % self.spdk_dir)
        self.remote_call("mkdir -p %s" % self.spdk_dir)
        self.set_cpu_frequency()
        self.sys_config()

    def __del__(self):
        self.ssh_connection.close()
@@ -481,6 +500,18 @@ runtime={run_time}
            self.log_print(error)
        self.log_print("FIO run finished. Results in: %s" % output_filename)

    def sys_config(self):
        self.log_print("====Kernel release:====")
        self.log_print(self.remote_call('uname -r')[0])
        self.log_print("====Kernel command line:====")
        cmdline, error = self.remote_call('cat /proc/cmdline')
        self.log_print('\n'.join(self.get_uncommented_lines(cmdline.splitlines())))
        self.log_print("====sysctl conf:====")
        sysctl, error = self.remote_call('cat /etc/sysctl.conf')
        self.log_print('\n'.join(self.get_uncommented_lines(sysctl.splitlines())))
        self.log_print("====Cpu power info:====")
        self.remote_call("cpupower frequency-info")


class KernelTarget(Target):
    def __init__(self, name, username, password, mode, nic_ips, transport="rdma",