mempool: optimize copy in cache
authorJerin Jacob <jerin.jacob@caviumnetworks.com>
Thu, 30 Jun 2016 12:16:36 +0000 (17:46 +0530)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 30 Jun 2016 17:34:15 +0000 (19:34 +0200)
Replace C memcpy code semantics with optimized rte_memcpy.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Tested-by: David Hunt <david.hunt@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
lib/librte_mempool/rte_mempool.h

index b2a5197..c8a81e2 100644 (file)
@@ -74,6 +74,7 @@
 #include <rte_memory.h>
 #include <rte_branch_prediction.h>
 #include <rte_ring.h>
+#include <rte_memcpy.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -1028,7 +1029,6 @@ static inline void __attribute__((always_inline))
 __mempool_generic_put(struct rte_mempool *mp, void * const *obj_table,
                      unsigned n, struct rte_mempool_cache *cache, int flags)
 {
-       uint32_t index;
        void **cache_objs;
 
        /* increment stat now, adding in mempool always success */
@@ -1052,8 +1052,7 @@ __mempool_generic_put(struct rte_mempool *mp, void * const *obj_table,
         */
 
        /* Add elements back into the cache */
-       for (index = 0; index < n; ++index, obj_table++)
-               cache_objs[index] = *obj_table;
+       rte_memcpy(&cache_objs[0], obj_table, sizeof(void *) * n);
 
        cache->len += n;