[v5,0/4] Add RCU reclamation APIs

Message ID 20200422033006.1124-1-honnappa.nagarahalli@arm.com
Headers show
Series
  • Add RCU reclamation APIs
Related show

Message

Honnappa Nagarahalli April 22, 2020, 3:30 a.m.
v5
1) rte_rcu_dq_delete does not return an error on NULL parameter
2) Removed good amount of memcopy's where possible
3) Changed the call back function to be friendly for
   batching.

v4
1) RCU reclamation APIs changed to provide lot more flexibility
   a) The rte_rcu_qsbr_dq_enqueue and rte_rcu_qsbr_dq_reclaim APIs
      can be configured to be MT safe
   b) The auto reclamation limit and how much to reclaim
      can be configured
   c) rte_rcu_qsbr_dq_reclaim API returns the number of resources
      reclaimed and the number of pending resources on the defer
      queue
   d) rte_rcu_qsbr_dq_reclaim API takes maximum number of resources
      to reclaim as a parameter
2) Multiple minor fixes
   a) Private header file and test function names changed to remove 'rte_'
   b) Compilation for shared library
   c) Split the test cases into a separate commit
   d) Uses rte_ring_xxx_elem APIs to support flexible ring element size

v3
1) Separated from the original series
   (https://patches.dpdk.org/cover/58811/)
2) Added reclamation APIs and test cases (Stephen, Yipeng)

This is not a new patch. This patch set is separated from the LPM
changes as the size of the changes in RCU library has grown due
to comments from community. These APIs will help reduce the changes
in LPM and hash libraries that are getting integrated with RCU
library.

This adds 4 new APIs to RCU library to create a defer queue, enqueue
deleted resources, reclaim resources and delete the defer queue.

The rationale for the APIs is documented in 3/4.

Honnappa Nagarahalli (3):
  lib/rcu: add resource reclamation APIs
  test/rcu: test cases for RCU defer queue APIs
  lib/rcu: add additional debug logs

Ruifeng Wang (1):
  doc/rcu: add RCU integration design details

 app/test/test_rcu_qsbr.c           | 365 ++++++++++++++++++++++++++++-
 doc/guides/prog_guide/rcu_lib.rst  |  59 +++++
 lib/librte_rcu/Makefile            |   2 +-
 lib/librte_rcu/meson.build         |   7 +
 lib/librte_rcu/rcu_qsbr_pvt.h      |  66 ++++++
 lib/librte_rcu/rte_rcu_qsbr.c      | 227 +++++++++++++++++-
 lib/librte_rcu/rte_rcu_qsbr.h      | 203 +++++++++++++++-
 lib/librte_rcu/rte_rcu_version.map |   4 +
 lib/meson.build                    |   6 +-
 9 files changed, 931 insertions(+), 8 deletions(-)
 create mode 100644 lib/librte_rcu/rcu_qsbr_pvt.h

-- 
2.17.1

Comments

David Marchand April 22, 2020, 6:46 p.m. | #1
On Wed, Apr 22, 2020 at 5:30 AM Honnappa Nagarahalli
<honnappa.nagarahalli@arm.com> wrote:
> This is not a new patch. This patch set is separated from the LPM

> changes as the size of the changes in RCU library has grown due

> to comments from community. These APIs will help reduce the changes

> in LPM and hash libraries that are getting integrated with RCU

> library.

>

> This adds 4 new APIs to RCU library to create a defer queue, enqueue

> deleted resources, reclaim resources and delete the defer queue.


Fixed a few typos.
Added missing dependency of librte_rcu on librte_ring for make.

Series applied, thanks.


-- 
David Marchand