numam-dpdk/lib
Jiayu Hu 1b7b24389c vhost: enhance async enqueue for small packets
Async enqueue offloads large copies to DMA devices, and small copies
are still performed by the CPU. However, it requires users to get
enqueue completed packets by rte_vhost_poll_enqueue_completed(), even
if they are completed by the CPU when rte_vhost_submit_enqueue_burst()
returns. This design incurs extra overheads of tracking completed
pktmbufs and function calls, thus degrading performance on small packets.

This patch enhances async enqueue for small packets by enabling
rte_vhost_submit_enqueue_burst() to return completed packets.

Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
Tested-by: Yinan Wang <yinan.wang@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2021-01-13 18:51:58 +01:00
..
librte_acl build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_bbdev build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_bitratestats build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_bpf bpf: use helper to install headers 2020-10-22 14:15:19 +02:00
librte_cfgfile build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_cmdline cmdline: avoid name clash with Windows system types 2020-11-05 17:49:00 +01:00
librte_compressdev build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_cryptodev build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_distributor build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_eal lpm/arm: support SVE 2021-01-14 16:42:25 +01:00
librte_efd efd: fix tailq entry leak in error path 2020-10-22 22:07:15 +02:00
librte_ethdev ethdev: deprecate shared counters using action attribute 2020-11-27 19:16:45 +01:00
librte_eventdev eventdev: remove software Rx timestamp 2020-11-03 15:28:26 +01:00
librte_fib fib6: improve AVX512 lookup performance 2021-01-13 22:13:37 +01:00
librte_flow_classify build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_graph build: standardize component names and defines 2020-10-19 22:15:34 +02:00
librte_gro gro: fix packet type detection with IPv6 tunnel 2020-11-14 10:56:30 +01:00
librte_gso gso: fix mbuf freeing responsibility 2020-11-03 22:45:02 +01:00
librte_hash hash: fix check of parameter 2020-10-29 16:45:17 +01:00
librte_ip_frag build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_ipsec build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_jobstats build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_kni build: align wording of non-support reasons 2020-11-20 16:05:35 +01:00
librte_kvargs build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_latencystats latency: switch Rx timestamp to dynamic mbuf field 2020-11-03 16:21:15 +01:00
librte_lpm lpm/arm: support SVE 2021-01-14 16:42:25 +01:00
librte_mbuf mbuf: add C++ include guard for dynamic fields header 2021-01-11 15:34:21 +01:00
librte_member build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_mempool build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_meter build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_metrics metrics: fix memory leak on allocation failure 2020-11-03 22:45:24 +01:00
librte_net doc: add missing network layers in API index 2020-11-27 01:51:27 +01:00
librte_node node: switch IPv4 metadata to dynamic mbuf field 2020-10-31 16:13:10 +01:00
librte_pci build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_pdump build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_pipeline pipeline: fix multiple SWX emit pattern detection 2020-11-15 16:46:37 +01:00
librte_port build: replace use of old build macros 2020-10-19 22:15:44 +02:00
librte_power build: align wording of non-support reasons 2020-11-20 16:05:35 +01:00
librte_rawdev build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_rcu rcu: use EAL memory barrier API 2021-01-11 15:34:21 +01:00
librte_regexdev regexdev: add resource limit reached flag 2021-01-12 23:31:39 +01:00
librte_reorder reorder: switch sequence number to dynamic mbuf field 2020-10-31 22:14:30 +01:00
librte_rib rib: fix insertion in some cases 2020-12-15 10:08:39 +01:00
librte_ring ring: add zero copy API 2020-10-29 14:13:31 +01:00
librte_sched build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_security security: switch metadata to dynamic mbuf field 2020-10-31 16:13:11 +01:00
librte_stack build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_table table: fix exact match SWX table lookup 2020-11-13 13:55:07 +01:00
librte_telemetry build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_timer build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_vhost vhost: enhance async enqueue for small packets 2021-01-13 18:51:58 +01:00
meson.build build: fix MS linker flag with meson 0.54 2020-11-13 15:13:16 +01:00