On Wed, 9 Oct 2019 13:55:11 +0000 Morten Brørup <m...@smartsharesystems.com> wrote:
> > +/** > + * @internal helper function for freeing a bulk of packet mbuf segments > + * via an array holding the packet mbuf segments from the same mempool > + * pending to be freed. > + * > + * @param m > + * The packet mbuf segment to be freed. > + * @param pending > + * Pointer to the array of packet mbuf segments pending to be freed. > + * @param nb_pending > + * Pointer to the number of elements held in the array. > + * @param pending_sz > + * Number of elements the array can hold. > + * Note: The compiler should optimize this parameter away when using a > + * constant value, such as RTE_PKTMBUF_FREE_PENDING_SZ. > + */ > +static __rte_always_inline void > +__rte_pktmbuf_free_seg_via_array(struct rte_mbuf *m, Overall the patch looks good, but don't think always_inline is required here. That should be reserved for things that use inline assembly or other stuff that would be broken if it wasn't inlined. Most compilers would inline it without any modifier anyway.