Spdk/lib/vhost
Darek Stojaczyk ac498fa31c vhost: use DPDK APIs to split non-contiguous virtual memory buffers
Currently, we translate each 2MB chunk to manually check
if it's contiguous with the previous one, but there are
rte_vhost APIs that do it way more efficiently.

rte_vhost_va_from_guest_pa() was introduced in DPDK 18.02,
but was backported to 17.11 as well, so we don't even need
any RTE_VERSION ifdefs to use it now. This function
calculates the remaining region size instead of trying to
translate subsequent 2MB chunks over and over.

The previous rte_vhost_gpa_to_vva() was deprecated a long
time ago and after this patch we no longer make any use of
it.

DPDK usages of this new function check if the translated
memory region has 0 length, which seems very silly, but
let's just do it in SPDK as well.

Change-Id: Ifae8daa5f810b5a2ba1524958ad2399af700b532
Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/454878
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
2019-05-22 00:53:08 +00:00
..
rte_vhost rte_vhost: introduce get/set vring base idx APIs 2019-02-27 01:43:16 +00:00
Makefile vhost: install external msg handling hooks to rte_vhost 2019-03-13 14:26:20 +00:00
rte_vhost_compat.c vhost: introduce vsession->started 2019-05-10 22:31:41 +00:00
vhost_blk.c vhost: allocate device objects with regular calloc 2019-04-22 16:50:37 +00:00
vhost_internal.h vhost: introduce vsession->started 2019-05-10 22:31:41 +00:00
vhost_nvme.c vhost: allocate device objects with regular calloc 2019-04-22 16:50:37 +00:00
vhost_rpc.c configure: add option not to use the internal rte_vhost copy 2019-03-13 14:26:20 +00:00
vhost_scsi.c vhost: introduce vsession->started 2019-05-10 22:31:41 +00:00
vhost.c vhost: use DPDK APIs to split non-contiguous virtual memory buffers 2019-05-22 00:53:08 +00:00