numam-dpdk/lib
Cheng Jiang 2e3f1ab0d8 vhost: fix async packed ring batch datapath
We assume that in the sync path, if there is no buffer wrap in the
avail descriptors fetched in a batch, there is no buffer wrap in the
used descriptors which need to be written back in this batch, but
this assumption is wrong in the async path since there are inflight
descriptors which are processed by the DMA device.

This patch refactors the batch copy code and adds used ring buffer
wrap check as a batch copy condition to fix this issue.

Fixes: 873e8dad6f ("vhost: support packed ring in async datapath")
Cc: stable@dpdk.org

Signed-off-by: Cheng Jiang <cheng1.jiang@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2021-07-21 07:56:13 +02:00
..
acl acl: fix build with GCC 6.3 2021-06-17 09:37:11 +02:00
bbdev log: register with standardized names 2021-05-11 15:17:55 +02:00
bitratestats lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
bpf log: register with standardized names 2021-05-11 15:17:55 +02:00
cfgfile log: register with standardized names 2021-05-11 15:17:55 +02:00
cmdline lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
compressdev log: register with standardized names 2021-05-11 15:17:55 +02:00
cryptodev lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
distributor distributor: fix 128-bit write alignment 2021-07-20 14:32:08 +02:00
eal eal: suppress error log on multi-process hotplug 2021-07-10 10:07:07 +02:00
efd lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
ethdev ethdev: keep count of representor ranges in API 2021-07-10 11:29:11 +02:00
eventdev log: register with standardized names 2021-05-11 15:17:55 +02:00
fib lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
flow_classify flow_classify: fix leaking rules on delete 2021-06-24 15:34:45 +02:00
graph eal: save error in string copy 2021-07-05 15:11:30 +02:00
gro lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
gso lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
hash hash: fix tuple adjustment 2021-05-10 15:31:42 +02:00
ip_frag ip_frag: fix fragmenting IPv4 packet with header option 2021-04-21 16:50:46 +02:00
ipsec lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
jobstats lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
kni kni: update link only on change 2021-07-09 17:22:42 +02:00
kvargs lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
latencystats lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
lpm config/arm: fix SVE build with GCC 8.3 2021-07-09 22:25:24 +02:00
mbuf mbuf: clarify usage of packet pool initializers 2021-05-04 22:41:32 +02:00
member log: register with standardized names 2021-05-11 15:17:55 +02:00
mempool mempool: distinguish cache and pool debug counters 2021-05-04 09:44:55 +02:00
meter lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
metrics log: register with standardized names 2021-05-11 15:17:55 +02:00
net net: introduce functions to verify L4 checksums 2021-07-02 19:03:03 +02:00
node log: register with standardized names 2021-05-11 15:17:55 +02:00
pci bus/pci: configure PCI bus master 2021-06-04 09:38:08 +02:00
pdump log: register with standardized names 2021-05-11 15:17:55 +02:00
pipeline pipeline: fix selector freeing 2021-07-21 13:51:17 +02:00
port lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
power power: fix crash on error for intel_pstate 2021-07-20 17:24:00 +02:00
rawdev log: register with standardized names 2021-05-11 15:17:55 +02:00
rcu log: register with standardized names 2021-05-11 15:17:55 +02:00
regexdev lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
reorder lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
rib rib: fix max depth IPv6 lookup 2021-06-24 15:34:45 +02:00
ring ring: use WFE to wait for tail update on aarch64 2021-07-09 21:33:01 +02:00
sched sched: fix traffic class oversubscription parameter 2021-04-21 16:57:18 +02:00
security lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
stack log: register with standardized names 2021-05-11 15:17:55 +02:00
table table: support selector table 2021-07-09 23:31:54 +02:00
telemetry telemetry: add extra log message on socket bind failure 2021-07-07 15:23:53 +02:00
timer lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
vhost vhost: fix async packed ring batch datapath 2021-07-21 07:56:13 +02:00
meson.build lib: build testpmd dependencies on Windows 2021-07-02 19:03:03 +02:00