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

Ferruh Yigit ferruh.yigit at intel.com
Fri Mar 31 16:37:16 CEST 2017


On 3/29/2017 2:09 PM, Bruce Richardson wrote:
> 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 V5, p8 & p9 only:
> * Fixed errors in performance-thread sample app due to missed updates to
>   enqueue/dequeue calls.
> * Added in missing doxygen comments for new API parameters
> 
> Changes in V4:
> * Fixed errors in the crypto PMDs due to missed updates to their
>   enqueue/dequeue calls (p8 & p9).
> * Updated quota_watermarks documentation to match changed code (p10)
> 
> Changes in V3:
> * removed anonymous union for sp_enqueue and sc_dequeue variables (p2)
> * fixed parameter to dequeue function which was mistakenly named is_mp
>   instead of is_sc (as described in the comments) (p12)
> * skipped unneeded check in tail pointer update fn for sp/sc operation (p13)
> 
> 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

Hi Bruce,

After latest master tree integrated into next-net, icc build throws
following error, which I assume related to this patchset, FYI:

In file included from .../lib/librte_ring/rte_ring.c(90):
.../lib/librte_ring/rte_ring.h(162): error #1366: a reduction in
alignment without the "packed" attribute is ignored
  } __rte_cache_aligned;
    ^




More information about the dev mailing list