[dpdk-dev] [PATCH v2 00/14] refactor and cleanup of rte_ring

Olivier Matz olivier.matz at 6wind.com
Tue Mar 14 09:59:04 CET 2017


On Tue,  7 Mar 2017 11:32:03 +0000, Bruce Richardson <bruce.richardson at intel.com> wrote:
> NOTE: this set depends on the v2 cleanup set sent previously.
> 	http://dpdk.org/ml/archives/dev/2017-February/thread.html#58200
> 
> This patchset make a set of, sometimes non-backward compatible, cleanup
> changes to the rte_ring code in order to improve it. The resulting code is
> shorter, since the existing functions are restructured to reduce code
> duplication, as well as being more consistent in behaviour. The specific
> changes made are explained in each patch which makes that change.
> 
> Changes in V2:
> * Eliminated extra cacheline padding where cachelines are 128B
> * Renamed rte_ring_ht_ptr struct to rte_ring_headtail
> * Removed missed references to ring watermarks in test code and docs
> 
> This patchset is largely the same as that posted previously on-list as
> an RFC:
> 	http://dpdk.org/ml/archives/dev/2017-February/thread.html#56982
> 
> Changes in V1 from RFC:
> * Included release notes updates as changes are made in each patch
> * Fixed some missed comment updates when changing the code
> * Separated some initial fixup patches from this set to send separately
> * Dropped the final two patches for an rte_event_ring, as not relevant
>   for this set. That can be done as a separate set later.
> * The macros for copying the pointers have an extra parameter added,
>   indicating the start of the ring buffer itself. This allows more
>   flexibility for reusing them in other ring implementations.
> 
> Bruce Richardson (14):
>   ring: remove split cacheline build setting
>   ring: create common structure for prod and cons metadata
>   ring: eliminate duplication of size and mask fields
>   ring: remove debug setting
>   ring: remove the yield when waiting for tail update
>   ring: remove watermark support
>   ring: make bulk and burst fn return vals consistent
>   ring: allow enqueue fns to return free space value
>   ring: allow dequeue fns to return remaining entry count
>   examples/quota_watermark: use ring space for watermarks
>   ring: reduce scope of local variables
>   ring: separate out head index manipulation for enq/deq
>   ring: create common function for updating tail idx
>   ring: make ring struct and enq/deq macros type agnostic
> 
>  app/pdump/main.c                                   |   2 +-
>  config/common_base                                 |   3 -
>  doc/guides/prog_guide/env_abstraction_layer.rst    |   5 -
>  doc/guides/prog_guide/ring_lib.rst                 |  15 -
>  doc/guides/rel_notes/release_17_05.rst             |  32 +
>  doc/guides/sample_app_ug/server_node_efd.rst       |   2 +-
>  drivers/crypto/null/null_crypto_pmd.c              |   2 +-
>  drivers/net/bonding/rte_eth_bond_pmd.c             |   3 +-
>  drivers/net/ring/rte_eth_ring.c                    |   4 +-
>  examples/distributor/main.c                        |   5 +-
>  examples/load_balancer/runtime.c                   |  34 +-
>  .../client_server_mp/mp_client/client.c            |   9 +-
>  .../client_server_mp/mp_server/main.c              |   2 +-
>  examples/packet_ordering/main.c                    |  13 +-
>  examples/qos_sched/app_thread.c                    |  14 +-
>  examples/quota_watermark/qw/init.c                 |   5 +-
>  examples/quota_watermark/qw/main.c                 |  21 +-
>  examples/quota_watermark/qw/main.h                 |   1 +
>  examples/quota_watermark/qwctl/commands.c          |   4 +-
>  examples/quota_watermark/qwctl/qwctl.c             |   2 +
>  examples/quota_watermark/qwctl/qwctl.h             |   1 +
>  examples/server_node_efd/node/node.c               |   2 +-
>  examples/server_node_efd/server/main.c             |   2 +-
>  lib/librte_hash/rte_cuckoo_hash.c                  |   5 +-
>  lib/librte_mempool/rte_mempool_ring.c              |  12 +-
>  lib/librte_pdump/rte_pdump.c                       |   2 +-
>  lib/librte_port/rte_port_frag.c                    |   3 +-
>  lib/librte_port/rte_port_ras.c                     |   2 +-
>  lib/librte_port/rte_port_ring.c                    |  34 +-
>  lib/librte_ring/rte_ring.c                         |  76 +--
>  lib/librte_ring/rte_ring.h                         | 760 ++++++++-------------
>  test/test-pipeline/pipeline_hash.c                 |   5 +-
>  test/test-pipeline/runtime.c                       |  19 +-
>  test/test/autotest_test_funcs.py                   |   7 -
>  test/test/commands.c                               |  52 --
>  test/test/test_link_bonding_mode4.c                |   6 +-
>  test/test/test_pmd_ring_perf.c                     |  12 +-
>  test/test/test_ring.c                              | 704 +++----------------
>  test/test/test_ring_perf.c                         |  36 +-
>  test/test/test_table_acl.c                         |   2 +-
>  test/test/test_table_pipeline.c                    |   2 +-
>  test/test/test_table_ports.c                       |  12 +-
>  test/test/virtual_pmd.c                            |   8 +-
>  43 files changed, 554 insertions(+), 1388 deletions(-)
> 

Series
Acked-by: Olivier Matz <olivier.matz at 6wind.com>

Thanks!


More information about the dev mailing list