[RFC,v2,0/2] malloc: support malloc and free tracking log
mbox series

Message ID 1587110623-405-1-git-send-email-xuemingl@mellanox.com
Headers show
  • malloc: support malloc and free tracking log
Related show


Xueming Li April 17, 2020, 8:03 a.m. UTC
DPDK uses second level memory allocation management, this makes
regular memory profiler tool not applicant. This patch trys to
provide a lightweight malloc and free logging, then show leaked
memory entries based on logs.

This tool only target to malloc and free tracking, for memzone
used by ring and mempool, "dump_memzone" in testpmd list them.

There will be another example that enable and dump tracking as
secondary process.

This tool came from Mellanox internal Hackathon, thanks Shahaf Shuler
<shahafs@mellanox.com> who provided the idea.

V0: initial version
V1: log rte_realloc function
    rename log size to req_size, real_size to size(total)
    log padding and include padding in total size
    rename log "free" field to "type", alloc_free to "paired"
    rename malloc_log_index to malloc_log_count
    split testpmd part into separate patch
    add rte_malloc_log_stop() function
    add log entry number check
    change log dump detail level from (-1,0,1) to (0,1,2)
V2: fix map file indent
    change type of counter variables to unsigned
    fix CI error

Xueming Li (2):
  malloc: support malloc and free tracking log
  app/testpmd: support malloc and free tracking log

 app/test-pmd/cmdline.c                      |  60 ++++++-
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  15 ++
 lib/librte_eal/common/eal_memcfg.h          |  26 +++
 lib/librte_eal/common/malloc_elem.h         |   6 +-
 lib/librte_eal/common/rte_malloc.c          | 261 +++++++++++++++++++++++++++-
 lib/librte_eal/include/rte_malloc.h         |  39 ++++-
 lib/librte_eal/rte_eal_version.map          |   3 +
 7 files changed, 401 insertions(+), 9 deletions(-)