Spdk/scripts
Richael Zhuang f61b004197 bdev_nvme: update nvme_io_path stat when IO completes
Currently we have stat per bdev I/O channel, but for NVMe bdev
multipath, we don't have stat per I/O path. Especially for
active-active mode, we may want to observe each path's statistics.

This patch support IO stat for nvme_io_path. Record each nvme_io_path
stat using structure spdk_bdev_io_stat.

The following is the comparison of bdevperf test.

Test on Arm server with the following basic configuration.
1 Null bdev: block size: 4K, num_blocks:16k
run bdevperf with io size=4k, qdepth=1/32/128, rw type=randwrite/mixed with 70% read/randread

Each time run 30 seconds, each item run for 16 times and get the average.

The result is as follows.

qdepth type   IOPS(default) IOPS(this patch)  diff
1   randwrite   7795157.27  7859909.78       0.83%
1   mix(70% r)  7418607.08  7404026.54      -0.20%
1   randread    8053560.83  8046315.44      -0.09%

32  randwrite   15409191.3  15327642.11	    -0.53%
32  mix(70% r)  13760145.97 13714666.28	    -0.33%
32  randread    16136922.98 16038855.39	    -0.61%

128 randwrite   14815647.56 14944902.74	     0.87%
128 mix(70% r)  13414858.59 13412317.46	    -0.02%
128 randread    15508642.43 15521752.41	     0.08%

Change-Id: I4eb5673f49d65d3ff9b930361d2f31ab0ccfa021
Signed-off-by: Richael Zhuang <richael.zhuang@arm.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14743
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
2023-01-19 01:57:11 +00:00
..
bash-completion iscsi_top: remove application 2023-01-11 09:28:08 +00:00
bpf rpc: fix python style 2022-12-21 09:32:24 +00:00
ceph scripts/ceph: Make sure osd_class_dir is an absolute path 2022-12-29 08:37:45 +00:00
env_dpdk env_dpdk: add script for comparing DPDK PCI API 2022-12-16 09:27:11 +00:00
perf scripts/nvmf_perf: allow sharing initiator CPU cores 2023-01-13 08:54:59 +00:00
pkgdep pkgdep: add avahi package dependencies 2023-01-12 07:20:42 +00:00
vagrant vagrant/create_vbox: add fedora37 2022-12-08 12:56:18 +00:00
ar-xnvme-fixer add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
arm_cross_compile.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
bpftrace.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
check_format.sh check_format: Add checker for the SPDX-license 2022-11-29 08:27:51 +00:00
common.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
core-collector.sh scripts/core-collector: Add coredump_filter map to .json 2023-01-10 13:12:21 +00:00
detect_cc.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
dpdk_mem_info.py add (c) and SPDX header to python files as needed 2022-11-10 08:28:53 +00:00
eofnl add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
fio-wrapper add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
gdb_macros.py scripts: gdb macros should allow missing symbols 2022-12-21 09:32:24 +00:00
gen_ftl.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
gen_nvme.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
genconfig.py add (c) and SPDX header to python files as needed 2022-11-10 08:28:53 +00:00
get-pmr scripts/get-pmr: Update comment, remove unused vars 2023-01-10 13:04:01 +00:00
histogram.py add (c) and SPDX header to python files as needed 2022-11-10 08:28:53 +00:00
iostat.py add (c) and SPDX header to python files as needed 2022-11-10 08:28:53 +00:00
lspci add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
pc_libs.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
pc_modules.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
pc.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
pkgdep.sh pkgdep: add avahi package dependencies 2023-01-12 07:20:42 +00:00
posix.txt build: Automatically detect use of POSIX includes 2017-05-08 13:20:37 -07:00
prep_benchmarks.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
qat_setup.sh scripts/qat_setup: Remove VFs' pci id from the target bind driver 2022-12-08 12:56:56 +00:00
rpc_http_proxy.py add (c) and SPDX header to python files as needed 2022-11-10 08:28:53 +00:00
rpc.py bdev_nvme: update nvme_io_path stat when IO completes 2023-01-19 01:57:11 +00:00
rxe_cfg_small.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
setup.sh scripts/setup: Stop checking for broken uio_pci_generic driver 2022-12-14 08:03:17 +00:00
sma-client.py add (c) and SPDX header to python files as needed 2022-11-10 08:28:53 +00:00
sma.py add (c) and SPDX header to python files as needed 2022-11-10 08:28:53 +00:00
spdk-gpt.py add (c) and SPDX header to python files as needed 2022-11-10 08:28:53 +00:00
spdkcli.py add (c) and SPDX header to python files as needed 2022-11-10 08:28:53 +00:00
spdx.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
sync_dev_uevents.sh add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00