mbox series

[0/3] hash: integrate RCU QSBR

Message ID 20201016173858.1134-1-dharmik.thakkar@arm.com (mailing list archive)
Headers
Series hash: integrate RCU QSBR |

Message

Dharmik Thakkar Oct. 16, 2020, 5:38 p.m. UTC
  Integrate RCU QSBR to make it easier for the applications to use lock
free algorithm.

Resource reclamation implementation was split from the original
series, and has already been part of RCU library. Rework the series
to base hash integration on RCU reclamation APIs.

Refer 'Resource reclamation framework for DPDK' available at [1]
to understand various aspects of integrating RCU library
into other libraries.

[1] https://doc.dpdk.org/guides/prog_guide/rcu_lib.html

Introduce a new API rte_hash_rcu_qsbr_add for application to
register a RCU variable that hash library will use.

Functional tests and performance tests are added to cover the
integration with RCU.
---
v3:
 - Add documentation
 - Add unit tests

v2:
 - Remove defer queue related functions and use resource reclamation
   APIs from the RCU QSBR library instead

 - Remove patch (net/ixgbe: avoid multpile definitions of 'bool')
   from the series as it is already accepted

Dharmik Thakkar (3):
  lib/hash: integrate RCU QSBR
  test/hash: replace rte atomic with C11 atomic APIs
  test/hash: add tests for integrated RCU QSBR

 app/test/test_hash.c                   | 390 ++++++++++++++++++++++++-
 app/test/test_hash_readwrite_lf_perf.c | 260 +++++++++++++----
 doc/guides/prog_guide/hash_lib.rst     |  11 +-
 lib/librte_hash/meson.build            |   1 +
 lib/librte_hash/rte_cuckoo_hash.c      | 300 ++++++++++++++-----
 lib/librte_hash/rte_cuckoo_hash.h      |   8 +
 lib/librte_hash/rte_hash.h             |  77 ++++-
 lib/librte_hash/rte_hash_version.map   |   2 +-
 8 files changed, 917 insertions(+), 132 deletions(-)
  

Comments

David Marchand Oct. 19, 2020, 2:48 p.m. UTC | #1
On Fri, Oct 16, 2020 at 7:39 PM Dharmik Thakkar <dharmik.thakkar@arm.com> wrote:
>
> Integrate RCU QSBR to make it easier for the applications to use lock
> free algorithm.
>
> Resource reclamation implementation was split from the original
> series, and has already been part of RCU library. Rework the series
> to base hash integration on RCU reclamation APIs.
>
> Refer 'Resource reclamation framework for DPDK' available at [1]
> to understand various aspects of integrating RCU library
> into other libraries.
>
> [1] https://doc.dpdk.org/guides/prog_guide/rcu_lib.html
>
> Introduce a new API rte_hash_rcu_qsbr_add for application to
> register a RCU variable that hash library will use.
>
> Functional tests and performance tests are added to cover the
> integration with RCU.

clang builds are broken.

http://mails.dpdk.org/archives/test-report/2020-October/160043.html
https://travis-ci.com/github/ovsrobot/dpdk/builds/190521500