numam-dpdk/lib
Patrick Fu 78639d5456 vhost: introduce async enqueue registration API
Performing large memory copies usually takes up a major part of CPU
cycles and becomes the hot spot in vhost-user enqueue operation. To
offload the large copies from CPU to the DMA devices, asynchronous
APIs are introduced, with which the CPU just submits copy jobs to
the DMA but without waiting for its copy completion. Thus, there is
no CPU intervention during data transfer. We can save precious CPU
cycles and improve the overall throughput for vhost-user based
applications. This patch introduces registration/un-registration
APIs for vhost async data enqueue operation. Together with the
registration APIs implementations, data structures and the prototype
of the async callback functions required for async enqueue data path
are also defined.

Signed-off-by: Patrick Fu <patrick.fu@intel.com>
Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
2020-07-07 23:38:28 +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 service: fix core mapping reset 2020-07-08 18:52:49 +02:00
librte_efd replace packed attributes 2020-04-16 18:16:46 +02:00
librte_ethdev ethdev: add PPPoE RSS offload types 2020-07-07 23:38:27 +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: check flags on creation for future proofing 2020-06-16 17:46:39 +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 lpm6: fix comments spelling 2020-04-24 19:29:02 +02:00
librte_mbuf mbuf: add dump of free dynamic flags 2020-06-25 23:03:18 +02:00
librte_member log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
librte_mempool eal: register non-EAL threads as lcores 2020-07-08 14:41:05 +02:00
librte_meter meter: remove inline functions from export list 2020-06-23 19:29:41 +02:00
librte_metrics log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
librte_net net: fix IPv4 checksum 2020-06-24 23:42:20 +02:00
librte_node lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_pci pci: fix address domain format size 2020-06-30 00:02:54 +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 replace unused attributes 2020-04-16 18:30:58 +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: optimize empty test 2020-07-01 11:46:09 +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 lib: remind experimental status in headers 2020-07-07 12:49:10 +02:00
librte_timer timer: relax barrier for status update 2020-04-26 22:07:38 +02:00
librte_vhost vhost: introduce async enqueue registration API 2020-07-07 23:38:28 +02:00
Makefile regexdev: introduce API 2020-07-07 00:24:38 +02:00
meson.build build: remove special versioning for non stable libraries 2020-07-07 12:48:25 +02:00