[dpdk-dev] [PATCH 2/4] mempool: make cache flush threshold macro public

Sanford, Robert rsanford at akamai.com
Tue Aug 23 18:07:38 CEST 2016


Hi Olivier,

On 8/23/16, 11:09 AM, "Olivier MATZ" <olivier.matz at 6wind.com> wrote:

    Hi Robert,
    
    On 08/01/2016 10:42 PM, Robert Sanford wrote:
    > Rename macros that calculate a mempool cache flush threshold, and
    > move them from rte_mempool.c to rte_mempool.h, so that the bonding
    > driver can accurately calculate its mbuf requirements.
    >
    > Signed-off-by: Robert Sanford <rsanford at akamai.com>
    > ---
    >   lib/librte_mempool/rte_mempool.c |    8 ++------
    >   lib/librte_mempool/rte_mempool.h |    7 +++++++
    >   2 files changed, 9 insertions(+), 6 deletions(-)
    >
    > [...]
    >
    > --- a/lib/librte_mempool/rte_mempool.h
    > +++ b/lib/librte_mempool/rte_mempool.h
    > @@ -263,6 +263,13 @@ struct rte_mempool {
    >   #define MEMPOOL_F_NO_PHYS_CONTIG 0x0020 /**< Don't need physically contiguous objs. */
    >
    >   /**
    > + * Calculate the threshold before we flush excess elements.
    > + */
    > +#define RTE_MEMPOOL_CACHE_FLUSHTHRESH_MULTIPLIER 1.5
    > +#define RTE_MEMPOOL_CALC_CACHE_FLUSHTHRESH(c)	\
    > +	((typeof(c))((c) * RTE_MEMPOOL_CACHE_FLUSHTHRESH_MULTIPLIER))
    > +
    > +/**
    >    * @internal When debug is enabled, store some statistics.
    >    *
    >    * @param mp
    >
    
    What do you think of using a static inline function instead of a macro ?
    
    
    Regards,
    Olivier
--

Yes, an inline function is better than a macro. We still need to move the #define MULTIPLIER from rte_mempool.c to rte_mempool.h.

How is this for the prototype?
static inline unsigned rte_mempool_calc_cache_flushthresh(unsigned cache_size)

Where in the .h should we place the function, right below the MULTIPLIER definition?

Regards,
Robert




More information about the dev mailing list