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; ^