event/octeontx2: reduce chunk pool memory usage
Reduce amount of memory used by chunk pool when the mempool used is OCTEONTX2 NPA. Previously, the number of chunks configured when NPA is used is equal to the number of timers requested plus the number of buckets and if the max timeout is long enough w.r.t. resolution requested there will a large number of buckets which would cause high memory usage. Reduce the number of chunks when NPA is used to the number of timers requested as buckets that are processed chunk lists are automatically freed. Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
This commit is contained in:
parent
703c02647b
commit
94f0159ba7
@ -92,6 +92,8 @@ tim_chnk_pool_create(struct otx2_tim_ring *tim_ring,
|
||||
if (cache_sz > RTE_MEMPOOL_CACHE_MAX_SIZE)
|
||||
cache_sz = RTE_MEMPOOL_CACHE_MAX_SIZE;
|
||||
|
||||
cache_sz = cache_sz != 0 ? cache_sz : 2;
|
||||
tim_ring->nb_chunks += (cache_sz * rte_lcore_count());
|
||||
if (!tim_ring->disable_npa) {
|
||||
tim_ring->chunk_pool = rte_mempool_create_empty(pool_name,
|
||||
tim_ring->nb_chunks, tim_ring->chunk_sz,
|
||||
@ -286,16 +288,15 @@ otx2_tim_ring_create(struct rte_event_timer_adapter *adptr)
|
||||
}
|
||||
}
|
||||
|
||||
tim_ring->nb_chunks = tim_ring->nb_timers / OTX2_TIM_NB_CHUNK_SLOTS(
|
||||
tim_ring->chunk_sz);
|
||||
tim_ring->nb_chunk_slots = OTX2_TIM_NB_CHUNK_SLOTS(tim_ring->chunk_sz);
|
||||
|
||||
if (tim_ring->disable_npa)
|
||||
if (tim_ring->disable_npa) {
|
||||
tim_ring->nb_chunks =
|
||||
tim_ring->nb_timers /
|
||||
OTX2_TIM_NB_CHUNK_SLOTS(tim_ring->chunk_sz);
|
||||
tim_ring->nb_chunks = tim_ring->nb_chunks * tim_ring->nb_bkts;
|
||||
else
|
||||
tim_ring->nb_chunks = tim_ring->nb_chunks + tim_ring->nb_bkts;
|
||||
|
||||
/* Create buckets. */
|
||||
} else {
|
||||
tim_ring->nb_chunks = tim_ring->nb_timers;
|
||||
}
|
||||
tim_ring->nb_chunk_slots = OTX2_TIM_NB_CHUNK_SLOTS(tim_ring->chunk_sz);
|
||||
tim_ring->bkt = rte_zmalloc("otx2_tim_bucket", (tim_ring->nb_bkts) *
|
||||
sizeof(struct otx2_tim_bkt),
|
||||
RTE_CACHE_LINE_SIZE);
|
||||
|
@ -70,7 +70,7 @@
|
||||
#define OTX2_TIM_MAX_BURST (RTE_CACHE_LINE_SIZE / \
|
||||
OTX2_TIM_CHUNK_ALIGNMENT)
|
||||
#define OTX2_TIM_NB_CHUNK_SLOTS(sz) (((sz) / OTX2_TIM_CHUNK_ALIGNMENT) - 1)
|
||||
#define OTX2_TIM_MIN_CHUNK_SLOTS (0x1)
|
||||
#define OTX2_TIM_MIN_CHUNK_SLOTS (0x8)
|
||||
#define OTX2_TIM_MAX_CHUNK_SLOTS (0x1FFE)
|
||||
#define OTX2_TIM_MIN_TMO_TKS (256)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user