DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH v2 0/3] new API to free consumed buffers in Tx ring
@ 2017-01-11 20:03 Billy McFall
  2017-01-11 20:03 ` [dpdk-dev] [PATCH v2 1/3] ethdev: " Billy McFall
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Billy McFall @ 2017-01-11 20:03 UTC (permalink / raw)
  To: thomas.monjalon, wenzhuo.lu; +Cc: dev, Billy McFall

Based on a request from Damjan Marion and seconded by Keith Wiles, see
dpdk-dev mailing list from 11/21/2016, add a new API to free consumed
buffers on TX ring. This addresses two scenarios:
1) Flooding a packet and want to reuse existing mbuf to avoid a packet
copy. Increment the reference count of the packet and poll new API until
reference count is decremented.
2) Application runs out of mbufs, or resets and is preparing for
additional run, call API to free consumed packets so processing can
continue.

API will return the number of packets freed (0-n) or error code if
feature not supported (-ENOTSUP) or input invalid (-ENODEV).

API for e1000 igb driver and vHost driver have been implemented. Other
drivers can be implemented over time. Some drivers implement a Tx done
flush routine that should be reused where possible. e1000 igb driver
and vHost driver do not have such functions.

---
v2:
* Removed rte_eth_tx_buffer_flush() call and associated parameters
  from new rte_eth_tx_done_cleanup() API.

* Remaining open issue is whether this should be a new API or overload 
  existing rte_eth_tx_buffer() API with input parameter nb_pkts set to
  0. My concern is that overloading existing API will not provided
  enough feedback to application. Application needs to know if feature
  is supported and driver is attempting to free mbufs or not.

* If new API is supported, second open issue is if parameter free_cnt
  should be included. It was in the original feature request.


Billy McFall (3):
  ethdev: new API to free consumed buffers in Tx ring
  net/e1000: e1000 igb support to free consumed buffers
  net/vhost: vHost support to free consumed buffers

 drivers/net/e1000/e1000_ethdev.h  |   2 +
 drivers/net/e1000/igb_ethdev.c    |   1 +
 drivers/net/e1000/igb_rxtx.c      | 126 ++++++++++++++++++++++++++++++++++++++
 drivers/net/vhost/rte_eth_vhost.c |  11 ++++
 lib/librte_ether/rte_ethdev.h     |  43 +++++++++++++
 5 files changed, 183 insertions(+)

-- 
2.9.3

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-01-20 16:00 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-11 20:03 [dpdk-dev] [PATCH v2 0/3] new API to free consumed buffers in Tx ring Billy McFall
2017-01-11 20:03 ` [dpdk-dev] [PATCH v2 1/3] ethdev: " Billy McFall
2017-01-12  1:41   ` Stephen Hemminger
2017-01-11 20:03 ` [dpdk-dev] [PATCH v2 2/3] net/e1000: e1000 igb support to free consumed buffers Billy McFall
2017-01-11 20:03 ` [dpdk-dev] [PATCH v2 3/3] net/vhost: vHost " Billy McFall
2017-01-12  1:39   ` Stephen Hemminger
2017-01-20 16:00     ` Billy McFall

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).