diff options
author | Matias Elo <matias.elo@nokia.com> | 2023-06-28 13:36:01 +0300 |
---|---|---|
committer | Matias Elo <matias.elo@nokia.com> | 2023-08-08 09:54:40 +0300 |
commit | 49993981f19849e85ccfff324e185f301599f4ac (patch) | |
tree | 215e10848c5a43e38b11a247576f2511054b786c /platform/linux-dpdk | |
parent | 0d3b1032759f8c7820549ce5b24841b2f4b3c53e (diff) |
Port 7ac1fd5e6 "linux-gen: pool: implement new odp_pool_stats_selected() function"
Port original commit from linux-generic.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Diffstat (limited to 'platform/linux-dpdk')
-rw-r--r-- | platform/linux-dpdk/odp_pool.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/platform/linux-dpdk/odp_pool.c b/platform/linux-dpdk/odp_pool.c index 014f27b09..a8e928fa2 100644 --- a/platform/linux-dpdk/odp_pool.c +++ b/platform/linux-dpdk/odp_pool.c @@ -1018,6 +1018,37 @@ int odp_pool_stats(odp_pool_t pool_hdl, odp_pool_stats_t *stats) return 0; } +int odp_pool_stats_selected(odp_pool_t pool_hdl, odp_pool_stats_selected_t *stats, + const odp_pool_stats_opt_t *opt) +{ + pool_t *pool; + + if (odp_unlikely(pool_hdl == ODP_POOL_INVALID)) { + _ODP_ERR("Invalid pool handle\n"); + return -1; + } + if (odp_unlikely(stats == NULL)) { + _ODP_ERR("Output buffer NULL\n"); + return -1; + } + if (odp_unlikely(opt == NULL)) { + _ODP_ERR("Pool counters NULL\n"); + return -1; + } + + pool = _odp_pool_entry(pool_hdl); + + if (odp_unlikely(opt->all & ~pool->params.stats.all)) { + _ODP_ERR("Trying to read disabled counter\n"); + return -1; + } + + if (opt->bit.available) + stats->available = rte_mempool_avail_count(pool->rte_mempool); + + return 0; +} + int odp_pool_stats_reset(odp_pool_t pool_hdl ODP_UNUSED) { return 0; |