[dpdk-dev] huge page didn't get freed when dpdk-app exit(or killed)

Du, Fan fan.du at intel.com
Mon Jun 15 10:46:49 CEST 2015


Hi,

I play OpenvSwitch dpdk, when ovs-vswitchd got killed, it won't free up any allocated huge pages, shown by below:
# tail /proc/meminfo
HardwareCorrupted:     0 kB
AnonHugePages:    106496 kB
HugePages_Total:       8
HugePages_Free:        6
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:    1048576 kB

DPDK setup hugepage by below steps, in function rte_eal_hugepage_init
*  1. map N huge pages in separate files in hugetlbfs
 *  2. find associated physical addr
 *  3. find associated NUMA socket ID
 *  4. sort all huge pages by physical address
 *  5. remap these N huge pages in the correct order
 *  6. unmap the first mapping
 *  7. fill memsegs in configuration with contiguous zones

So my env shows below when allocated 2G huge pages.
# ls /dev/hugepages/
libvirt  rtemap_4  rtemap_7

So in scenario where dpdk app is stop, but hugepage will be used by other non-dpdk app,
Would current dpdk huge page behavior(not freed huge page when app exited) be a problem?

I found out this patch: http://dpdk.org/dev/patchwork/patch/993/ tries to provide an interface,
It didn't get merged with additional implementation modification.
Then is there any follow ups for this issue? A pointer will be much appreciated!
Thanks!



More information about the dev mailing list