[RFC,v2,0/1] lib/ring: add scatter gather APIs

Message ID 20201006132905.46205-1-honnappa.nagarahalli@arm.com
Headers show
  • lib/ring: add scatter gather APIs
Related show


Honnappa Nagarahalli Oct. 6, 2020, 1:29 p.m.
It is pretty common for the DPDK applications to be deployed in
semi-pipeline model. In these models, a small number of cores
(typically 1) are designated as I/O cores. The I/O cores work
on receiving and transmitting packets from the NIC and several
packet processing cores. The IO core and the packet processing
cores exchange the packets over a ring. Typically, such applications
receive the mbufs in a temporary array and copy the mbufs on
to the ring. Depending on the requirements the packets
could be copied in batches of 32, 64 etc resulting in 256B,
512B etc memory copy.

The scatter gather APIs help avoid intermediate copies by exposing
the space on the ring directly to the application.

v2: changed the patch to use the SP-SC and HTS modes

v1: Initial version

Add test cases

Honnappa Nagarahalli (1):
  lib/ring: add scatter gather APIs

 lib/librte_ring/meson.build        |   3 +-
 lib/librte_ring/rte_ring_elem.h    |   1 +
 lib/librte_ring/rte_ring_peek_sg.h | 552 +++++++++++++++++++++++++++++
 3 files changed, 555 insertions(+), 1 deletion(-)
 create mode 100644 lib/librte_ring/rte_ring_peek_sg.h