Spdk/python/spdk/rpc
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
..
__init__.py module/iobuf: introduce iobuf module 2022-12-16 09:06:07 +00:00
accel.py Add SPDX header to various files 2022-11-29 08:27:51 +00:00
app.py rpc: fix python style 2022-12-21 09:32:24 +00:00
bdev.py bdev_xnvme: add option to conserve cpu and set default to false 2022-12-21 09:33:27 +00:00
blobfs.py rpc: fix python style 2022-12-21 09:32:24 +00:00
client.py Add SPDX header to various files 2022-11-29 08:27:51 +00:00
cmd_parser.py Add SPDX header to various files 2022-11-29 08:27:51 +00:00
dsa.py Add SPDX header to various files 2022-11-29 08:27:51 +00:00
env_dpdk.py rpc: fix python style 2022-12-21 09:32:24 +00:00
helpers.py Add SPDX header to various files 2022-11-29 08:27:51 +00:00
iaa.py Add SPDX header to various files 2022-11-29 08:27:51 +00:00
ioat.py Add SPDX header to various files 2022-11-29 08:27:51 +00:00
iobuf.py module/iobuf: introduce iobuf module 2022-12-16 09:06:07 +00:00
iscsi.py rpc: fix python style 2022-12-21 09:32:24 +00:00
log.py rpc: fix python style 2022-12-21 09:32:24 +00:00
lvol.py rpc: fix python style 2022-12-21 09:32:24 +00:00
nbd.py rpc: fix python style 2022-12-21 09:32:24 +00:00
notify.py rpc: fix python style 2022-12-21 09:32:24 +00:00
nvme.py rpc: fix python style 2022-12-21 09:32:24 +00:00
nvmf.py Add SPDX header to various files 2022-11-29 08:27:51 +00:00
pmem.py rpc: fix python style 2022-12-21 09:32:24 +00:00
sock.py rpc: fix python style 2022-12-21 09:32:24 +00:00
subsystem.py rpc: fix python style 2022-12-21 09:32:24 +00:00
trace.py rpc: fix python style 2022-12-21 09:32:24 +00:00
vfio_user.py rpc: fix python style 2022-12-21 09:32:24 +00:00
vhost.py Add SPDX header to various files 2022-11-29 08:27:51 +00:00
vmd.py Add SPDX header to various files 2022-11-29 08:27:51 +00:00