perf: cleanup cmdline params for consistency
'-s' option is usually associated with the memory size, but our ioat/perf and nvme/perf use it for io size. To keep those consistent: '-s' option (io size) was be changed to '-o' '-d' option (mem size) was be changed to '-s' Change-Id: I97cef4c0a4e6e902277dd50dfb43bde420a6427e Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com> Reviewed-on: https://review.gerrithub.io/422654 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
39592d7b20
commit
b5616804dc
14
doc/nvme.md
14
doc/nvme.md
@ -58,24 +58,24 @@ demonstrate how to use perf.
|
|||||||
|
|
||||||
Example: Using perf for 4K 100% Random Read workload to a local NVMe SSD for 300 seconds
|
Example: Using perf for 4K 100% Random Read workload to a local NVMe SSD for 300 seconds
|
||||||
~~~{.sh}
|
~~~{.sh}
|
||||||
perf -q 128 -s 4096 -w randread -r 'trtype:PCIe traddr:0000:04:00.0' -t 300
|
perf -q 128 -o 4096 -w randread -r 'trtype:PCIe traddr:0000:04:00.0' -t 300
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Example: Using perf for 4K 100% Random Read workload to a remote NVMe SSD exported over the network via NVMe-oF
|
Example: Using perf for 4K 100% Random Read workload to a remote NVMe SSD exported over the network via NVMe-oF
|
||||||
~~~{.sh}
|
~~~{.sh}
|
||||||
perf -q 128 -s 4096 -w randread -r 'trtype:RDMA adrfam:IPv4 traddr:192.168.100.8 trsvcid:4420' -t 300
|
perf -q 128 -o 4096 -w randread -r 'trtype:RDMA adrfam:IPv4 traddr:192.168.100.8 trsvcid:4420' -t 300
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Example: Using perf for 4K 70/30 Random Read/Write mix workload to all local NVMe SSDs for 300 seconds
|
Example: Using perf for 4K 70/30 Random Read/Write mix workload to all local NVMe SSDs for 300 seconds
|
||||||
~~~{.sh}
|
~~~{.sh}
|
||||||
perf -q 128 -s 4096 -w randrw -M 70 -t 300
|
perf -q 128 -o 4096 -w randrw -M 70 -t 300
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Example: Using perf for extended LBA format CRC guard test to a local NVMe SSD,
|
Example: Using perf for extended LBA format CRC guard test to a local NVMe SSD,
|
||||||
users must write to the SSD before reading the LBA from SSD
|
users must write to the SSD before reading the LBA from SSD
|
||||||
~~~{.sh}
|
~~~{.sh}
|
||||||
perf -q 1 -s 4096 -w write -r 'trtype:PCIe traddr:0000:04:00.0' -t 300 -e 'PRACT=0,PRCKH=GUARD'
|
perf -q 1 -o 4096 -w write -r 'trtype:PCIe traddr:0000:04:00.0' -t 300 -e 'PRACT=0,PRCKH=GUARD'
|
||||||
perf -q 1 -s 4096 -w read -r 'trtype:PCIe traddr:0000:04:00.0' -t 200 -e 'PRACT=0,PRCKH=GUARD'
|
perf -q 1 -o 4096 -w read -r 'trtype:PCIe traddr:0000:04:00.0' -t 200 -e 'PRACT=0,PRCKH=GUARD'
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
# Public Interface {#nvme_interface}
|
# Public Interface {#nvme_interface}
|
||||||
@ -227,8 +227,8 @@ Example: identical shm_id and non-overlapping core masks
|
|||||||
[-c core mask for I/O submission/completion]
|
[-c core mask for I/O submission/completion]
|
||||||
[-i shared memory group ID]
|
[-i shared memory group ID]
|
||||||
|
|
||||||
./perf -q 1 -s 4096 -w randread -c 0x1 -t 60 -i 1
|
./perf -q 1 -o 4096 -w randread -c 0x1 -t 60 -i 1
|
||||||
./perf -q 8 -s 131072 -w write -c 0x10 -t 60 -i 1
|
./perf -q 8 -o 131072 -w write -c 0x10 -t 60 -i 1
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
## Limitations {#nvme_multi_process_limitations}
|
## Limitations {#nvme_multi_process_limitations}
|
||||||
|
@ -250,7 +250,7 @@ usage(char *program_name)
|
|||||||
printf("\t[-c core mask for distributing I/O submission/completion work]\n");
|
printf("\t[-c core mask for distributing I/O submission/completion work]\n");
|
||||||
printf("\t[-q queue depth]\n");
|
printf("\t[-q queue depth]\n");
|
||||||
printf("\t[-n number of channels]\n");
|
printf("\t[-n number of channels]\n");
|
||||||
printf("\t[-s transfer size in bytes]\n");
|
printf("\t[-o transfer size in bytes]\n");
|
||||||
printf("\t[-t time in seconds]\n");
|
printf("\t[-t time in seconds]\n");
|
||||||
printf("\t[-v verify copy result if this switch is on]\n");
|
printf("\t[-v verify copy result if this switch is on]\n");
|
||||||
}
|
}
|
||||||
@ -261,9 +261,9 @@ parse_args(int argc, char **argv)
|
|||||||
int op;
|
int op;
|
||||||
|
|
||||||
construct_user_config(&g_user_config);
|
construct_user_config(&g_user_config);
|
||||||
while ((op = getopt(argc, argv, "c:hn:q:s:t:v")) != -1) {
|
while ((op = getopt(argc, argv, "c:hn:o:q:t:v")) != -1) {
|
||||||
switch (op) {
|
switch (op) {
|
||||||
case 's':
|
case 'o':
|
||||||
g_user_config.xfer_size_bytes = atoi(optarg);
|
g_user_config.xfer_size_bytes = atoi(optarg);
|
||||||
break;
|
break;
|
||||||
case 'n':
|
case 'n':
|
||||||
|
@ -911,7 +911,7 @@ static void usage(char *program_name)
|
|||||||
#endif
|
#endif
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf("\t[-q io depth]\n");
|
printf("\t[-q io depth]\n");
|
||||||
printf("\t[-s io size in bytes]\n");
|
printf("\t[-o io size in bytes]\n");
|
||||||
printf("\t[-w io pattern type, must be one of\n");
|
printf("\t[-w io pattern type, must be one of\n");
|
||||||
printf("\t\t(read, write, randread, randwrite, rw, randrw)]\n");
|
printf("\t\t(read, write, randread, randwrite, rw, randrw)]\n");
|
||||||
printf("\t[-M rwmixread (100 for reads, 0 for writes)]\n");
|
printf("\t[-M rwmixread (100 for reads, 0 for writes)]\n");
|
||||||
@ -938,7 +938,7 @@ static void usage(char *program_name)
|
|||||||
printf("\t PRCHK Control of Protection Information Checking (PRCHK=GUARD|REFTAG|APPTAG)\n");
|
printf("\t PRCHK Control of Protection Information Checking (PRCHK=GUARD|REFTAG|APPTAG)\n");
|
||||||
printf("\t Example: -e 'PRACT=0,PRCHK=GUARD|REFTAG|APPTAG'\n");
|
printf("\t Example: -e 'PRACT=0,PRCHK=GUARD|REFTAG|APPTAG'\n");
|
||||||
printf("\t -e 'PRACT=1,PRCHK=GUARD'\n");
|
printf("\t -e 'PRACT=1,PRCHK=GUARD'\n");
|
||||||
printf("\t[-d DPDK huge memory size in MB.]\n");
|
printf("\t[-s DPDK huge memory size in MB.]\n");
|
||||||
printf("\t[-m max completions per poll]\n");
|
printf("\t[-m max completions per poll]\n");
|
||||||
printf("\t\t(default: 0 - unlimited)\n");
|
printf("\t\t(default: 0 - unlimited)\n");
|
||||||
printf("\t[-i shared memory group ID]\n");
|
printf("\t[-i shared memory group ID]\n");
|
||||||
@ -1280,14 +1280,11 @@ parse_args(int argc, char **argv)
|
|||||||
g_core_mask = NULL;
|
g_core_mask = NULL;
|
||||||
g_max_completions = 0;
|
g_max_completions = 0;
|
||||||
|
|
||||||
while ((op = getopt(argc, argv, "c:d:e:i:lm:q:r:s:t:w:DLM:")) != -1) {
|
while ((op = getopt(argc, argv, "c:e:i:lm:o:q:r:s:t:w:DLM:")) != -1) {
|
||||||
switch (op) {
|
switch (op) {
|
||||||
case 'c':
|
case 'c':
|
||||||
g_core_mask = optarg;
|
g_core_mask = optarg;
|
||||||
break;
|
break;
|
||||||
case 'd':
|
|
||||||
g_dpdk_mem = atoi(optarg);
|
|
||||||
break;
|
|
||||||
case 'e':
|
case 'e':
|
||||||
if (parse_metadata(optarg)) {
|
if (parse_metadata(optarg)) {
|
||||||
usage(argv[0]);
|
usage(argv[0]);
|
||||||
@ -1303,6 +1300,9 @@ parse_args(int argc, char **argv)
|
|||||||
case 'm':
|
case 'm':
|
||||||
g_max_completions = atoi(optarg);
|
g_max_completions = atoi(optarg);
|
||||||
break;
|
break;
|
||||||
|
case 'o':
|
||||||
|
g_io_size_bytes = atoi(optarg);
|
||||||
|
break;
|
||||||
case 'q':
|
case 'q':
|
||||||
g_queue_depth = atoi(optarg);
|
g_queue_depth = atoi(optarg);
|
||||||
break;
|
break;
|
||||||
@ -1313,7 +1313,7 @@ parse_args(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
g_io_size_bytes = atoi(optarg);
|
g_dpdk_mem = atoi(optarg);
|
||||||
break;
|
break;
|
||||||
case 't':
|
case 't':
|
||||||
g_time_in_sec = atoi(optarg);
|
g_time_in_sec = atoi(optarg);
|
||||||
|
@ -111,10 +111,10 @@ done
|
|||||||
timing_exit identify
|
timing_exit identify
|
||||||
|
|
||||||
timing_enter perf
|
timing_enter perf
|
||||||
$rootdir/examples/nvme/perf/perf -q 128 -w read -s 12288 -t 1 -LL -i 0
|
$rootdir/examples/nvme/perf/perf -q 128 -w read -o 12288 -t 1 -LL -i 0
|
||||||
if [ -b /dev/ram0 ]; then
|
if [ -b /dev/ram0 ]; then
|
||||||
# Test perf with AIO device
|
# Test perf with AIO device
|
||||||
$rootdir/examples/nvme/perf/perf /dev/ram0 -q 128 -w read -s 12288 -t 1 -LL -i 0
|
$rootdir/examples/nvme/perf/perf /dev/ram0 -q 128 -w read -o 12288 -t 1 -LL -i 0
|
||||||
report_test_completion "nvme_perf"
|
report_test_completion "nvme_perf"
|
||||||
fi
|
fi
|
||||||
timing_exit perf
|
timing_exit perf
|
||||||
@ -153,11 +153,11 @@ timing_exit arbitration
|
|||||||
|
|
||||||
if [ `uname` = Linux ]; then
|
if [ `uname` = Linux ]; then
|
||||||
timing_enter multi_secondary
|
timing_enter multi_secondary
|
||||||
$rootdir/examples/nvme/perf/perf -i 0 -q 16 -w read -s 4096 -t 3 -c 0x1 &
|
$rootdir/examples/nvme/perf/perf -i 0 -q 16 -w read -o 4096 -t 3 -c 0x1 &
|
||||||
pid0=$!
|
pid0=$!
|
||||||
$rootdir/examples/nvme/perf/perf -i 0 -q 16 -w read -s 4096 -t 3 -c 0x2 &
|
$rootdir/examples/nvme/perf/perf -i 0 -q 16 -w read -o 4096 -t 3 -c 0x2 &
|
||||||
pid1=$!
|
pid1=$!
|
||||||
$rootdir/examples/nvme/perf/perf -i 0 -q 16 -w read -s 4096 -t 3 -c 0x4
|
$rootdir/examples/nvme/perf/perf -i 0 -q 16 -w read -o 4096 -t 3 -c 0x4
|
||||||
wait $pid0
|
wait $pid0
|
||||||
wait $pid1
|
wait $pid1
|
||||||
report_test_completion "nvme_multi_secondary"
|
report_test_completion "nvme_multi_secondary"
|
||||||
|
@ -44,10 +44,10 @@ $rpc_py construct_nvmf_subsystem nqn.2016-06.io.spdk:cnode1 "trtype:RDMA traddr:
|
|||||||
|
|
||||||
# Test multi-process access to local NVMe device
|
# Test multi-process access to local NVMe device
|
||||||
if [ -n "$local_nvme_trid" ]; then
|
if [ -n "$local_nvme_trid" ]; then
|
||||||
$rootdir/examples/nvme/perf/perf -i 0 -q 32 -s 4096 -w randrw -M 50 -t 1 -r "$local_nvme_trid"
|
$rootdir/examples/nvme/perf/perf -i 0 -q 32 -o 4096 -w randrw -M 50 -t 1 -r "$local_nvme_trid"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$rootdir/examples/nvme/perf/perf -q 32 -s 4096 -w randrw -M 50 -t 1 -r "trtype:RDMA adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:4420"
|
$rootdir/examples/nvme/perf/perf -q 32 -o 4096 -w randrw -M 50 -t 1 -r "trtype:RDMA adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:4420"
|
||||||
sync
|
sync
|
||||||
$rpc_py delete_nvmf_subsystem nqn.2016-06.io.spdk:cnode1
|
$rpc_py delete_nvmf_subsystem nqn.2016-06.io.spdk:cnode1
|
||||||
|
|
||||||
@ -63,8 +63,8 @@ if [ $RUN_NIGHTLY -eq 1 ]; then
|
|||||||
qd_depth=("1" "128")
|
qd_depth=("1" "128")
|
||||||
io_size=("512" "131072")
|
io_size=("512" "131072")
|
||||||
for qd in ${qd_depth[@]}; do
|
for qd in ${qd_depth[@]}; do
|
||||||
for s in ${io_size[@]}; do
|
for o in ${io_size[@]}; do
|
||||||
$rootdir/examples/nvme/perf/perf -q $qd -s $s -w randrw -M 50 -t 10 -r "trtype:RDMA adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:4420"
|
$rootdir/examples/nvme/perf/perf -q $qd -o $o -w randrw -M 50 -t 10 -r "trtype:RDMA adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:4420"
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user