Spdk/scripts
Simon A. F. Lund b99b00e595 bdev_xnvme: add option to conserve cpu and set default to false
To achieve the highest possible IO-rates and lowest latency, then CPU
cycles must be spent processing IO. This commit introduces three
different techniques dependendent on the 'io_mechanism' used.

For 'libaio', xNVMe is instructued via 'opts.poll_io' to not wait for
completions, thus xnvme_queue_poke() returns immmediatly, the user can
then call xnvme_queue_poke() as frequently as desired. This requires
xNVMe v0.5.0. Earlier versions will ignore 'opts.poll_io' for 'libaio'.

For 'io_uring', xNVMe is instructed via 'opts.poll_io' to enable
IORING_SETUP_IOPOLL.

For 'io_uring_cmd', xNVMe is instructued via 'opts.poll_sq' to enable
IORING_SETUP_SQPOLL, this sets up a kernel-side thread reaping
completions from user-space on the ring. Note that 'io_uring_cmd'
requires liburing >= 2.2.

This commit enables the above by default. The above can be disabled by
setting 'conserve_cpu' to true on the bdev-setup.

Signed-off-by: Simon A. F. Lund <simon.lund@samsung.com>
Change-Id: Id54f1e59733ce9ae3b174ad4562904d868d4ef4f
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14678
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-12-21 09:33:27 +00:00
..
bash-completion trace: update trace help inside SPDK target 2022-09-27 19:41:17 +00:00
bpf rpc: fix python style 2022-12-21 09:32:24 +00:00
ceph add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +00:00
env_dpdk env_dpdk: add script for comparing DPDK PCI API 2022-12-16 09:27:11 +00:00
perf misc: Fix spelling mistakes 2022-12-09 08:16:18 +00:00
pkgdep scripts/pkgdep: Install liburing's .pc to known directory 2022-12-21 09:33:27 +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 add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +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 add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +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 add (c) and SPDX header to bash files as needed 2022-11-29 08:27:51 +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_xnvme: add option to conserve cpu and set default to false 2022-12-21 09:33:27 +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