Skip to content

Commit

Permalink
mempool: fix panic on dump or audit
Browse files Browse the repository at this point in the history
[ upstream commit daeb7c7 ]

When doing a mempool dump or an audit, the application can panic because
the length of the cache is greater than the flush threshold, which is
seen as a fatal error. But this can temporarily happen when the mempool
is in use.

Fix the panic condition to abort only when the cache length is greater
than the array.

Fixes: ea5dd27 ("mempool: cache optimisations")

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
  • Loading branch information
olivier-matz-6wind authored and cpaelzer committed Feb 8, 2021
1 parent 11e3377 commit fd0254e
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion lib/librte_mempool/rte_mempool.c
Expand Up @@ -1160,7 +1160,7 @@ mempool_audit_cache(const struct rte_mempool *mp)
for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++) {
const struct rte_mempool_cache *cache;
cache = &mp->local_cache[lcore_id];
if (cache->len > cache->flushthresh) {
if (cache->len > RTE_DIM(cache->objs)) {
RTE_LOG(CRIT, MEMPOOL, "badness on cache[%u]\n",
lcore_id);
rte_panic("MEMPOOL: invalid cache len\n");
Expand Down

0 comments on commit fd0254e

Please sign in to comment.