mem: retrieve mempool cache only when needed
authorIntel <intel.com>
Wed, 18 Sep 2013 10:00:00 +0000 (12:00 +0200)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 9 Oct 2013 14:04:09 +0000 (16:04 +0200)
It is an optimization for the single consumer case,
or when cache is too small,
or when cache is disabled.

Signed-off-by: Intel
lib/librte_mempool/rte_mempool.h

index d1f70b8..dd8764a 100644 (file)
@@ -654,12 +654,11 @@ __mempool_get_bulk(struct rte_mempool *mp, void **obj_table,
        unsigned lcore_id = rte_lcore_id();
        uint32_t cache_size = mp->cache_size;
 
-       cache = &mp->local_cache[lcore_id];
-
        /* cache is not enabled or single consumer */
        if (unlikely(cache_size == 0 || is_mc == 0 || n >= cache_size))
                goto ring_dequeue;
 
+       cache = &mp->local_cache[lcore_id];
        cache_objs = cache->objs;
 
        /* Can this be satisfied from the cache? */