Currently, only ``RTE_VHOST_ASYNC_INORDER`` capable device is
supported by vhost.
- * ``async_threshold``
-
- The copy length (in bytes) below which CPU copy will be used even if
- applications call async vhost APIs to enqueue/dequeue data.
-
- Typical value is 256~1024 depending on the async device capability.
-
Applications must provide following ``ops`` callbacks for vhost lib to
work with the async copy devices:
vhost invokes this function to get the copy data completed by async
devices.
+* ``rte_vhost_async_channel_register_thread_unsafe(vid, queue_id, config, ops)``
+
+ Register an async copy device channel for a vhost queue without
+ performing any locking.
+
+ This function is only safe to call in vhost callback functions
+ (i.e., struct vhost_device_ops).
+
* ``rte_vhost_async_channel_unregister(vid, queue_id)``
Unregister the async copy device channel from a vhost queue.
devices for all vhost queues in destroy_device(), when a
virtio device is paused or shut down.
+* ``rte_vhost_async_channel_unregister_thread_unsafe(vid, queue_id)``
+
+ Unregister the async copy device channel for a vhost queue without
+ performing any locking.
+
+ This function is only safe to call in vhost callback functions
+ (i.e., struct vhost_device_ops).
+
* ``rte_vhost_submit_enqueue_burst(vid, queue_id, pkts, count, comp_pkts, comp_count)``
Submit an enqueue request to transmit ``count`` packets from host to guest
This function returns the amount of in-flight packets for the vhost
queue using async acceleration.
+* ``rte_vhost_clear_queue_thread_unsafe(vid, queue_id, **pkts, count)``
+
+ Clear inflight packets which are submitted to DMA engine in vhost async data
+ path. Completed packets are returned to applications through ``pkts``.
+
Vhost-user Implementations
--------------------------