scripts/nvmf_perf: unify PCM options into single setting

Instead enabling each measurement (cpu/power/memory) just
use a single flag and enable them all at once.

Change-Id: I8a639b697285aa741f28b5ddec11ce70c34fc760
Signed-off-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5980
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Karol Latecki 2021-01-18 19:33:39 +01:00 committed by Tomasz Zawadzki
parent 90761053ef
commit abe273b8d1
2 changed files with 14 additions and 22 deletions

View File

@ -146,14 +146,15 @@ Before using PCM Tools in nvmf perf scripts it needs to be installed on Target m
PCM source and instructions are available on https://github.com/opcm/pcm. PCM source and instructions are available on https://github.com/opcm/pcm.
To enable PCM in perf test you need to add Target setting in config.json file: To enable PCM in perf test you need to add Target setting in config.json file:
``` ```
"pcm_settings": ["pcm_directory", "measure_cpu", "measure_memory", "measure_power", delay_time, measure_interval, sample_count] "pcm_settings": ["pcm_directory", delay_time, measure_interval, sample_count]
``` ```
example: example:
``` ```
"pcm_settings": ["/tmp/pcm", true, true, true, 10, 1, 30] "pcm_settings": ["/tmp/pcm", 10, 1, 30]
``` ```
Example above will run PCM measure for cpu and memory, with start delay 10s, sample every 1 second, Example above will run PCM measure for cpu, memory and power. Start will be delayed by 10s,
and 30 samples for cpu measure. PCM memory do not support sample count. sample taken every 1 second. Last parameter is number of samples for cpu and power measure.
PCM memory do not support sample count.
# Bandwidth monitor (bwm-ng) # Bandwidth monitor (bwm-ng)
PCM Tools provides a number of command-line utilities for real-time monitoring. PCM Tools provides a number of command-line utilities for real-time monitoring.

View File

@ -47,8 +47,6 @@ class Target(Server):
super(Target, self).__init__(name, username, password, mode, nic_ips, transport) super(Target, self).__init__(name, username, password, mode, nic_ips, transport)
self.null_block = null_block_devices self.null_block = null_block_devices
self.enable_sar = False self.enable_sar = False
self.enable_pcm_power = False
self.enable_pcm_memory = False
self.enable_pcm = False self.enable_pcm = False
self.enable_bandwidth = False self.enable_bandwidth = False
self.enable_dpdk_memory = False self.enable_dpdk_memory = False
@ -59,8 +57,8 @@ class Target(Server):
self.enable_sar, self.sar_delay, self.sar_interval, self.sar_count = sar_settings self.enable_sar, self.sar_delay, self.sar_interval, self.sar_count = sar_settings
if pcm_settings: if pcm_settings:
self.pcm_dir, self.enable_pcm, self.enable_pcm_memory, self.enable_pcm_power,\ self.pcm_dir, self.pcm_delay, self.pcm_interval, self.pcm_count = pcm_settings
self.pcm_delay, self.pcm_interval, self.pcm_count = pcm_settings self.enable_pcm = True
if bandwidth_settings: if bandwidth_settings:
self.enable_bandwidth, self.bandwidth_count = bandwidth_settings self.enable_bandwidth, self.bandwidth_count = bandwidth_settings
@ -985,22 +983,15 @@ if __name__ == "__main__":
threads.append(t) threads.append(t)
if target_obj.enable_pcm: if target_obj.enable_pcm:
pcm_file_name = "_".join(["pcm_cpu", str(block_size), str(rw), str(io_depth)]) pcm_fnames = ["%s_%s_%s_%s.csv" % (block_size, rw, io_depth, x) for x in ["pcm_cpu", "pcm_memory", "pcm_power"]]
pcm_file_name = ".".join([pcm_file_name, "csv"])
t = threading.Thread(target=target_obj.measure_pcm, args=(target_results_dir, pcm_file_name,))
threads.append(t)
if target_obj.enable_pcm_memory: pcm_cpu_t = threading.Thread(target=target_obj.measure_pcm, args=(target_results_dir, pcm_fnames[0],))
pcm_file_name = "_".join(["pcm_memory", str(block_size), str(rw), str(io_depth)]) pcm_mem_t = threading.Thread(target=target_obj.measure_pcm_memory, args=(target_results_dir, pcm_fnames[1],))
pcm_file_name = ".".join([pcm_file_name, "csv"]) pcm_pow_t = threading.Thread(target=target_obj.measure_pcm_power, args=(target_results_dir, pcm_fnames[2],))
t = threading.Thread(target=target_obj.measure_pcm_memory, args=(target_results_dir, pcm_file_name,))
threads.append(t)
if target_obj.enable_pcm_power: threads.append(pcm_cpu_t)
pcm_file_name = "_".join(["pcm_power", str(block_size), str(rw), str(io_depth)]) threads.append(pcm_mem_t)
pcm_file_name = ".".join([pcm_file_name, "csv"]) threads.append(pcm_pow_t)
t = threading.Thread(target=target_obj.measure_pcm_power, args=(target_results_dir, pcm_file_name,))
threads.append(t)
if target_obj.enable_bandwidth: if target_obj.enable_bandwidth:
bandwidth_file_name = "_".join(["bandwidth", str(block_size), str(rw), str(io_depth)]) bandwidth_file_name = "_".join(["bandwidth", str(block_size), str(rw), str(io_depth)])