This updates the xNVMe submodule to v0.5.0 and adjusts the Makefile,
disabling a backend (libvfn) introduced in v0.5.0 which is not of
interest.
With xNVMe v0.5.0 two things important for the bdev_xnvme has changed:
* The 'libaio' backend implementation responds to 'opts.poll_io'. It
does so by 'xnvme_queue_poke()' returning immediatly instead of
waiting for at least one outstanding IO to complete or for a timeout
to occur. This dramatically improves the IO-rate and reduces latency.
* Prior to xNVMe v0.5.0, the liburing library was vendored and "bundled"
into the xNVMe library. This library-bundling can cause linker issue
and is thus replaced by linking "properly" with liburing on the system
via pkg-config discovery.
To make sure linker can properly link libxnvme.a's content we need to
make sure we point at system's -luring during the build. Effectively,
this can now work together with --with-uring[=/uring].
This change is made in preparation to adding the 'conserve_cpu' option
which makes use of 'opts.poll_io' for 'io_mechanism=libaio'.
Signed-off-by: Simon A. F. Lund <simon.lund@samsung.com>
Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: Ibd6e620679a3991a4a8642bb39390a61284aac74
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14677
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot