Spdk/test
GangCao e28e247954 RPC/Bdev: display the per channel IO statistics for required Bdev
Add a new parameter "-c" to display the per channel IO statistics
for required Bdev

./scripts/rpc.py bdev_get_iostat -b Malloc0 -h
usage: rpc.py [options] bdev_get_iostat [-h] [-b NAME] [-c]

optional arguments:
  -h, --help            show this help message and exit
  -b NAME, --name NAME  Name of the Blockdev. Example: Nvme0n1
  -c, --per-channel     Display per channel IO stats for specified device

This could give more intuitive information on each channel's processing
of the IOs with the associated thread on the same Bdev.

Please also be aware that the IO statistics are collected from SPDK
thread's related channel's information. So that it is more relating
to the SPDK thread. And in the dynamic scheduling case, different
SPDK thread could be running on the same Core.

In this case, any seperate channel's IO statistics are returned to
the RPC call and if needed, further parse of the data is needed to
get the per Core information although usually there is one thread
per Core.

On the other hand, user could run the framework_get_reactors RPC
method to get the relationship of the thread and CPU Cores so as
to get the precise information of IO runnings on each thread and
each Core for the same Bdev.

Change-Id: I39d6a2c9faa868e3c1d7fd0fb6e7c020df982585
Signed-off-by: GangCao <gang.cao@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13011
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
2022-10-28 06:51:19 +00:00
..
accel accel: Do not refer to the "framework" as "engine" 2022-09-06 07:16:17 +00:00
app test/llvm_vfio_fuzz: test normal IO during fuzzing 2022-09-27 19:41:07 +00:00
bdev RPC/Bdev: display the per channel IO statistics for required Bdev 2022-10-28 06:51:19 +00:00
blobfs trace: update trace help inside SPDK target 2022-09-27 19:41:17 +00:00
blobstore autotest_common.sh: change rpc_py to rpc_cmd 2022-09-01 11:15:03 +00:00
common test: remove SMA tests from skipped_tests 2022-10-19 07:47:20 +00:00
compress test/compress: change environment variable to "NET_TYPE=virt" in 2022-09-21 07:49:41 +00:00
cpp_headers lib/vfu_tgt: add library for PCI device emulation 2022-09-29 19:42:56 +00:00
dd test/xnvme: Use null_blk device instead of zram for the backend device 2022-10-27 09:06:37 +00:00
dma check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
dpdk_memory_utility autotest_common.sh: change rpc_py to rpc_cmd 2022-09-01 11:15:03 +00:00
env env_dpdk: add dpdk_pci_device_get_mem_resource 2022-09-29 15:32:24 +00:00
event check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
external_code configure/misc: make ISA-L a hard dependency 2022-09-20 10:18:54 +00:00
ftl ftl: Remove unnecessary bdev_nvme_detach_controller from test 2022-09-20 19:24:26 +00:00
fuzz autotest: Move the llvm_nvme_fuzz to test/fuzz 2022-10-17 12:38:20 +00:00
interrupt scripts: move python modules to python directory 2022-04-05 14:40:47 +00:00
ioat build: Example applications build to build/example 2020-06-15 15:27:16 +00:00
iscsi_tgt iscsi_tgt/sock.sh: comment out test with openssl ktls option enabled 2022-10-21 07:33:15 +00:00
json_config bdev_iscsi: add bdev iscsi config json 2022-10-17 12:37:36 +00:00
lvol bdev module: remove support for deprecated RPC names 2022-05-23 16:13:00 +00:00
make autobuild: tiny version 2022-10-17 10:50:40 +00:00
nvme test/xnvme: Use null_blk device instead of zram for the backend device 2022-10-27 09:06:37 +00:00
nvmf test/nvmf: Remove redundant steps from fabrics_fuzz 2022-10-19 07:51:33 +00:00
ocf autotest_common.sh: change rpc_py to rpc_cmd 2022-09-01 11:15:03 +00:00
openstack run_openstack_tests.sh: move rpc_py declaration below source commands 2022-09-08 07:20:17 +00:00
packaging test/packaging: Introduce separate test suite for packaging 2022-10-17 10:48:31 +00:00
pmem bdev module: remove support for deprecated RPC names 2022-05-23 16:13:00 +00:00
rpc scripts: move python modules to python directory 2022-04-05 14:40:47 +00:00
rpc_client check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
rpc_plugins autotest: Use rpc_cmd() for rpc plugin-based tests 2021-04-02 08:22:42 +00:00
scheduler test/scheduler: Fallback to checking user mode load if idle check fails 2022-09-26 15:36:07 +00:00
setup scripts/setup: Don't overwrite already allocated number of hugepages 2022-10-19 07:49:22 +00:00
sma test/sma: add test for multiple bus support for NVMe/vfio_user plugin 2022-09-23 11:33:07 +00:00
spdkcli test/spdkcli: reduce amount of HUGEMEM memory requested 2022-09-19 13:11:06 +00:00
thread Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
unit nvme_rdma: Get qpair from poll group using WC 2022-10-28 06:27:19 +00:00
vfio_user test/vfio-user: add virtio_blk|scsi VM fio|restart test case 2022-09-29 19:42:56 +00:00
vhost test/vfio-user: add virtio_blk|scsi VM fio|restart test case 2022-09-29 19:42:56 +00:00
vmd vmd: rename enable_vmd RPC to vmd_enable 2022-09-01 08:48:32 +00:00
Makefile Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
spdk_cunit.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00