diff options
author | Matias Elo <matias.elo@nokia.com> | 2019-08-09 11:48:05 +0300 |
---|---|---|
committer | Matias Elo <matias.elo@nokia.com> | 2019-08-16 12:58:25 +0300 |
commit | f56bfbfbc5660de3b0c31d31ab5fc907c63e7649 (patch) | |
tree | 48ad2373c888f09e7b0d6c2b7d0a78118f60fb15 /platform/linux-generic/odp_pool.c | |
parent | d36f4571f48632f377b9b58f2efd3e0553f0d002 (diff) |
linux-gen: dpdk: remove unnecessary zero-copy block size round up
The blocks size is already rounded up by rte_mempool_calc_obj_size().
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
Diffstat (limited to 'platform/linux-generic/odp_pool.c')
-rw-r--r-- | platform/linux-generic/odp_pool.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/platform/linux-generic/odp_pool.c b/platform/linux-generic/odp_pool.c index 6fc2e0d91..f021d903d 100644 --- a/platform/linux-generic/odp_pool.c +++ b/platform/linux-generic/odp_pool.c @@ -560,11 +560,27 @@ static odp_pool_t pool_create(const char *name, odp_pool_param_t *params, strcpy(&uarea_name[name_len], postfix); pool->params = *params; + pool->block_offset = 0; if (params->type == ODP_POOL_PACKET) { + uint32_t dpdk_obj_size; + hdr_size = ROUNDUP_CACHE_LINE(sizeof(odp_packet_hdr_t)); - block_size = ROUNDUP_CACHE_LINE(hdr_size + align + headroom + - seg_len + tailroom); + block_size = hdr_size + align + headroom + seg_len + tailroom; + /* Calculate extra space required for storing DPDK objects and + * mbuf headers. NOP if no DPDK pktio used or zero-copy mode is + * disabled. */ + dpdk_obj_size = _odp_dpdk_pool_obj_size(pool, block_size); + if (!dpdk_obj_size) { + ODP_ERR("Calculating DPDK mempool obj size failed\n"); + return ODP_POOL_INVALID; + } + if (dpdk_obj_size != block_size) { + shmflags |= ODP_SHM_HP; + block_size = dpdk_obj_size; + } else { + block_size = ROUNDUP_CACHE_LINE(block_size); + } } else { /* Header size is rounded up to cache line size, so the * following data can be cache line aligned without extra @@ -579,22 +595,6 @@ static odp_pool_t pool_create(const char *name, odp_pool_param_t *params, block_size = ROUNDUP_CACHE_LINE(hdr_size + align_pad + seg_len); } - /* Calculate extra space required for storing DPDK objects and mbuf - * headers. NOP if zero-copy is disabled. */ - pool->block_offset = 0; - if (params->type == ODP_POOL_PACKET) { - uint32_t dpdk_obj_size; - - dpdk_obj_size = _odp_dpdk_pool_obj_size(pool, block_size); - if (!dpdk_obj_size) { - ODP_ERR("Calculating DPDK mempool obj size failed\n"); - return ODP_POOL_INVALID; - } - if (dpdk_obj_size != block_size) - shmflags |= ODP_SHM_HP; - block_size = dpdk_obj_size; - } - /* Allocate extra memory for skipping packet buffers which cross huge * page boundaries. */ if (params->type == ODP_POOL_PACKET) { |