Skip to content

new API to free consumed buffers in Tx ring

Billy McFall dpdk-dev 8 versions – Applied

Status from this message: Applied, thanks.

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v8 Latest3 patches 2 repliesApplied
  2. v73 patches 6 repliesSuperseded
  3. v63 patches 5 repliesSuperseded
Earlier versions · 5
VersionPostedPatchesRepliesStatus
v53 patches13 repliesSuperseded
v43 patches0 repliesSuperseded
v33 patches4 repliesSuperseded
v23 patches3 repliesSuperseded
v13 patches8 repliesSuperseded

Changes in v8 from the cover letter

* Update Program's Guide documentation per patch comments.

Patches in v8 Applied

#Subject and filesSizeRepliesApplied
1/3ethdev: new API to free consumed buffers in Tx ringdoc/guides/conf.py doc/guides/nics/features/default.ini doc/guides/prog_guide/poll_mode_drv.rst +3 more+92 -30 replies
2/3net/e1000: e1000 igb support to free consumed buffersdoc/guides/nics/features/e1000.ini drivers/net/e1000/e1000_ethdev.h drivers/net/e1000/igb_ethdev.c +1 more+130 -00 replies
3/3net/vhost: vHost support to free consumed buffersdoc/guides/nics/features/vhost.ini drivers/net/vhost/rte_eth_vhost.c+12 -00 replies

Reviews trailers per patch

All 3 patches have a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchKeith WilesWenzhuo LuMaxime Coquelin
SeriesA-b
1/3A-b
2/3A-b A-b
3/3A-b A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v8 thread

Cover letter [PATCH v8 0/3] new API to free consumed buffers in Tx ring

See request from 11/21/2016:
http://dpdk.org/ml/archives/dev/2016-November/050585.html

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.

---
v3:
* Removed extra white space in rte_ethdev.h.
* Removed inline of new API function in rte_ethdev.h.

---
v4:
* Added new API to documentation of per nic supported features.

---
v5:
* Added documentation to the Programmer's Guide.

---
v6:
* Rebase to master.
* Added Release Note.
* Addressed comments on documentation to the Programmer's Guide.
* Renamed feature string to "Free Tx mbuf on demand" and modified feature string processing code to extend the maximum string length from 20 characters to 25 characters.
* Reworded the commit log for PATCH 2/3 to attempt to clearify that the API is independent of tx_rs_thresh.
* Will address the rte_errno comment in a separate merge.

---
v7:
* New API was located between rte_eth_tx_buffer and rte_eth_tx_buffer_set_err_callback in the file. Moved this function below the tx_buffer functions.
* Added previous acked-by tags to merge comments.
* Moved documentation content from the mempool documentation to the ethdev documentation.

---
v8:
* Update Program's Guide documentation per patch comments.

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

 doc/guides/conf.py                      |   7 +-
 doc/guides/nics/features/default.ini    |   4 +-
 doc/guides/nics/features/e1000.ini      |   1 +
 doc/guides/nics/features/vhost.ini      |   1 +
 doc/guides/prog_guide/poll_mode_drv.rst |  33 +++++++++
 doc/guides/rel_notes/release_17_05.rst  |   6 ++
 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.c           |  14 ++++
 lib/librte_ether/rte_ethdev.h           |  31 ++++++++
 12 files changed, 234 insertions(+), 3 deletions(-)
Signature · 1 line
2.9.3