numam-dpdk/lib
Patrick Fu 6563cf9238 vhost: fix async copy on multi-page buffers
Async copy fails when single ring buffer vector is split on multiple
physical pages. This happens because current hpa address translation
function doesn't handle multi-page buffers. A new gpa to hpa address
conversion function, which returns the hpa on the first hitting host
pages, is implemented in this patch. Async data path recursively calls
this new function to construct a multi-segments async copy descriptor
for ring buffers crossing physical page boundaries.

Fixes: cd6760da10 ("vhost: introduce async enqueue for split ring")

Signed-off-by: Patrick Fu <patrick.fu@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2020-07-30 00:41:24 +02:00
..
librte_acl replace alignment attributes 2020-04-16 18:16:18 +02:00
librte_bbdev lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_bitratestats build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_bpf lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_cfgfile cfgfile: fix stack buffer underflow 2020-07-07 23:22:04 +02:00
librte_cmdline replace unused attributes 2020-04-16 18:30:58 +02:00
librte_compressdev lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_cryptodev cryptodev: add traces in multi-process path 2020-07-08 18:16:17 +02:00
librte_distributor build: add global libatomic dependency for 32-bit clang 2020-04-21 11:34:09 +02:00
librte_eal eal: introduce macro for bit definition 2020-07-28 18:27:46 +02:00
librte_efd replace packed attributes 2020-04-16 18:16:46 +02:00
librte_ethdev ethdev: add eCPRI key fields to flow API 2020-07-13 02:11:30 +02:00
librte_eventdev eventdev: relax SMP barriers with C11 atomics 2020-07-08 18:16:41 +02:00
librte_fib lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_flow_classify lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_graph log: remove unneeded logtype declaration 2020-07-07 13:18:23 +02:00
librte_gro build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_gso build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_hash hash: fix out-of-memory handling in hash creation 2020-07-27 12:53:40 +02:00
librte_ip_frag ip_frag: ensure minimum v6 fragmentation length 2020-04-25 15:15:27 +02:00
librte_ipsec lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_jobstats build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_kni kni: fix not contiguous FIFO 2020-02-14 11:59:01 +01:00
librte_kvargs kvargs: fix strcmp helper documentation 2020-05-19 15:05:56 +02:00
librte_latencystats latency: fix calculation for multi-thread 2020-01-20 01:32:50 +01:00
librte_lpm lpm: report error when defer queue overflows 2020-07-21 20:48:40 +02:00
librte_mbuf mbuf: use C11 atomic builtins for refcnt 2020-07-21 10:30:35 +02:00
librte_member log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
librte_mempool mempool: fix allocation in memzone during retry 2020-07-22 01:27:10 +02:00
librte_meter meter: remove inline functions from export list 2020-06-23 19:29:41 +02:00
librte_metrics metrics: fix header installation with meson 2020-07-17 16:00:30 +02:00
librte_net net: fix IPv6 checksum with TSO 2020-07-30 00:41:24 +02:00
librte_node node: add packet classifier 2020-07-22 01:18:59 +02:00
librte_pci pci: keep API compatibility with mmap values 2020-07-11 11:48:13 +02:00
librte_pdump log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
librte_pipeline replace packed attributes 2020-04-16 18:16:46 +02:00
librte_port ring: prepare ring to allow new sync schemes 2020-04-21 11:34:09 +02:00
librte_power power: fix environment detection 2020-07-22 01:35:39 +02:00
librte_rawdev rawdev: export dump function in map file 2020-07-07 19:18:04 +02:00
librte_rcu lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_regexdev regexdev: implement API functions 2020-07-07 00:24:52 +02:00
librte_reorder build: align symbols with global ABI version 2019-11-20 23:05:39 +01:00
librte_rib rib: add C++ include guard 2020-07-07 23:24:38 +02:00
librte_ring ring: use custom element for fixed size API 2020-07-09 17:22:36 +02:00
librte_sched sched: fix port time rounding 2020-07-07 00:58:31 +02:00
librte_security security: support DOCSIS protocol 2020-07-08 00:15:35 +02:00
librte_stack log: remove unneeded logtype declaration 2020-07-07 13:18:23 +02:00
librte_table eal: fix compiler detection in public headers 2020-03-18 00:59:17 +01:00
librte_telemetry telemetry: add upper limit on connections 2020-07-19 15:36:37 +02:00
librte_timer timer: relax barrier for status update 2020-04-26 22:07:38 +02:00
librte_vhost vhost: fix async copy on multi-page buffers 2020-07-30 00:41:24 +02:00
Makefile lpm: fix build dependency on RCU library 2020-07-15 13:15:06 +02:00
meson.build build: remove special versioning for non stable libraries 2020-07-07 12:48:25 +02:00