[dpdk-dev] [PATCH 00/14] cleanup resources on shutdown

Stephen Hemminger stephen at networkplumber.org
Sat Jan 4 02:33:27 CET 2020


Recently started using valgrind with DPDK, and the results
are not clean.

The DPDK has a function that applications can use to tell it
to cleanup resources on shutdown (rte_eal_cleanup). But the
current coverage of that API is spotty. Many internal parts of
DPDK leave files and allocated memory behind.

This patch set is a start at getting the sub-parts of
DPDK to cleanup after themselves. These are the easier ones,
the harder and more critical ones are in the drivers
and the memory subsystem.

There are no visible API or ABI changes here.

Stephen Hemminger (14):
  eal: log: close on cleanup
  eal: log: free dynamic state on cleanup
  eal: alarm: close timerfd on eal cleanup
  eal: cleanup threads
  eal: intr: cleanup resources
  eal: mp: end the multiprocess thread during cleanup
  eal: interrupts close epoll fd on shutdown
  eal: vfio: cleanup the mp sync handle
  eal: close mem config on cleanup
  tap: close netlink socket on device close
  eal: cleanup plugins data
  ethdev: raise priority of old driver warning
  eal: hotplug: cleanup multiprocess resources
  eal: malloc: cleanup mp resources

 drivers/net/tap/rte_eth_tap.c               |  7 ++++-
 lib/librte_eal/common/eal_common_log.c      | 30 +++++++++++++++++-
 lib/librte_eal/common/eal_common_options.c  | 12 +++++++
 lib/librte_eal/common/eal_common_proc.c     | 17 +++++++---
 lib/librte_eal/common/eal_options.h         |  1 +
 lib/librte_eal/common/eal_private.h         | 30 ++++++++++++++++++
 lib/librte_eal/common/hotplug_mp.c          |  5 +++
 lib/librte_eal/common/hotplug_mp.h          |  6 ++++
 lib/librte_eal/common/malloc_heap.c         |  6 ++++
 lib/librte_eal/common/malloc_heap.h         |  3 ++
 lib/librte_eal/common/malloc_mp.c           | 12 +++++++
 lib/librte_eal/common/malloc_mp.h           |  3 ++
 lib/librte_eal/linux/eal/eal.c              | 28 +++++++++++++++++
 lib/librte_eal/linux/eal/eal_alarm.c        | 11 +++++++
 lib/librte_eal/linux/eal/eal_interrupts.c   | 35 ++++++++++++++++++---
 lib/librte_eal/linux/eal/eal_log.c          | 14 +++++++++
 lib/librte_eal/linux/eal/eal_vfio.h         |  1 +
 lib/librte_eal/linux/eal/eal_vfio_mp_sync.c |  8 +++++
 lib/librte_ethdev/rte_ethdev.c              |  2 +-
 19 files changed, 218 insertions(+), 13 deletions(-)

-- 
2.20.1



More information about the dev mailing list