diff options
author | Matias Elo <matias.elo@nokia.com> | 2018-02-12 12:13:54 +0200 |
---|---|---|
committer | Maxim Uvarov <maxim.uvarov@linaro.org> | 2018-02-19 22:05:22 +0300 |
commit | 9f1f212d50d2acbda7919d5bc4b74ea8bcb2ad1b (patch) | |
tree | 377e79c47784faee797960d23b3c1e407e0b3adf /platform/linux-dpdk/odp_shared_memory.c | |
parent | f88b7beb810232609018396d81d46b0b59ee6946 (diff) |
linux-dpdk: shm: implement odp_shm_print()
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Diffstat (limited to 'platform/linux-dpdk/odp_shared_memory.c')
-rw-r--r-- | platform/linux-dpdk/odp_shared_memory.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/platform/linux-dpdk/odp_shared_memory.c b/platform/linux-dpdk/odp_shared_memory.c index 8cb2b72cc..31096fb85 100644 --- a/platform/linux-dpdk/odp_shared_memory.c +++ b/platform/linux-dpdk/odp_shared_memory.c @@ -436,6 +436,34 @@ void odp_shm_print_all(void) odp_spinlock_unlock(&shm_tbl->lock); } +void odp_shm_print(odp_shm_t shm) +{ + shm_block_t *block; + int idx = handle_to_idx(shm); + + odp_spinlock_lock(&shm_tbl->lock); + + if (!handle_is_valid(shm)) { + odp_spinlock_unlock(&shm_tbl->lock); + return; + } + + block = &shm_tbl->block[idx]; + + ODP_PRINT("\nSHM block info\n--------------\n"); + ODP_PRINT(" name: %s\n", block->name); + ODP_PRINT(" type: %s\n", block->type == SHM_TYPE_LOCAL ? "local" + : "remote"); + ODP_PRINT(" flags: 0x%x\n", shm_zone(block->mz)->flags); + ODP_PRINT(" start: %p\n", block->mz->addr); + ODP_PRINT(" len: %" PRIu64 "\n", shm_size(block->mz)); + ODP_PRINT(" page size: %" PRIu64 "\n", block->mz->hugepage_sz); + ODP_PRINT(" NUMA ID: %" PRIi32 "\n", block->mz->socket_id); + ODP_PRINT("\n"); + + odp_spinlock_unlock(&shm_tbl->lock); +} + uint64_t odp_shm_to_u64(odp_shm_t hdl) { return _odp_pri(hdl); |