Skip to contentSkip to conversation

Memory leak during interprocess communication.

Bug 898 [email protected] 1 participant 2 messages Dec 9, 2021 – Mar 26, 2025

lore
Share & tools
lore
#0 lore raw

https://bugs.dpdk.org/show_bug.cgi?id=898

            Bug ID: 898
           Summary: Memory leak during interprocess communication.
           Product: DPDK
           Version: 18.11
          Hardware: x86
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: core
          Assignee: [email protected]
          Reporter: [email protected]

Target Milestone: ---

Start any primary DPDK process. pktgen for example.
Run any secondary process a large number of times, for example, in a loop. dpdk-procinfo for example.
After some time, the number of memory segments used by the main process begins to increase and is not released until the main process ends.

At begin:
dpdk-procinfo -- -m

EAL: Detected 12 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket_12553_cdd87636c2be4
EAL: Probing VFIO support...
EAL: PCI device 0000:03:00.0 on NUMA socket 0
EAL:   probe driver: 8086:10fb net_ixgbe
eth_ixgbe_dev_init(): No TX queues configured yet. Using default TX function.
EAL: PCI device 0000:03:00.1 on NUMA socket 0
EAL:   probe driver: 8086:10fb net_ixgbe
eth_ixgbe_dev_init(): No TX queues configured yet. Using default TX function.
EAL: PCI device 0000:07:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1533 net_e1000_igb
EAL: PCI device 0000:08:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1533 net_e1000_igb

----------- MEMORY_SEGMENTS -----------
Segment 0-0: IOVA:0x706000000, len:2097152, virt:0x100200000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:10
Segment 0-1: IOVA:0x720e00000, len:2097152, virt:0x100400000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:11
Segment 0-2: IOVA:0x720c00000, len:2097152, virt:0x100600000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:12
Segment 0-3: IOVA:0x724a00000, len:2097152, virt:0x100800000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:13
Segment 0-4: IOVA:0x724800000, len:2097152, virt:0x100a00000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:14
Segment 0-5: IOVA:0x82c200000, len:2097152, virt:0x100c00000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:15
Segment 0-6: IOVA:0x82c000000, len:2097152, virt:0x100e00000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:16
Segment 0-7: IOVA:0x721200000, len:2097152, virt:0x101000000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:17
Segment 4-0: IOVA:0xf67400000, len:2097152, virt:0x1100a00000, socket_id:1, hugepage_sz:2097152, nchannel:0, nrank:0 fd:18
Segment 4-1: IOVA:0xfa3800000, len:2097152, virt:0x1100c00000, socket_id:1, hugepage_sz:2097152, nchannel:0, nrank:0 fd:19
Segment 4-2: IOVA:0xf90e00000, len:2097152, virt:0x1100e00000, socket_id:1, hugepage_sz:2097152, nchannel:0, nrank:0 fd:20
--------- END_MEMORY_SEGMENTS ---------
------------ MEMORY_ZONES -------------
Zone 0: name:<rte_eth_dev_data>, len:0x35840, virt:0x1003b1540, socket_id:0, flags:0
physical segments used:
addr: 0x100200000 iova: 0x706000000 len: 0x200000 pagesz: 0x200000
Zone 1: name:<RG_HT_fdir_0000:03:00.0>, len:0x80180, virt:0x100323780, socket_id:0, flags:0
physical segments used:
addr: 0x100200000 iova: 0x706000000 len: 0x200000 pagesz: 0x200000
Zone 2: name:<RG_HT_l2_tn_0000:03:00.0>, len:0x980, virt:0x1002a2ac0, socket_id:0, flags:0
physical segments used:
addr: 0x100200000 iova: 0x706000000 len: 0x200000 pagesz: 0x200000
Zone 3: name:<RG_HT_fdir_0000:03:00.1>, len:0x80180, virt:0x100210800, socket_id:0, flags:0
physical segments used:
addr: 0x100200000 iova: 0x706000000 len: 0x200000 pagesz: 0x200000
Zone 4: name:<RG_HT_l2_tn_0000:03:00.1>, len:0x980, virt:0x10020fbc0, socket_id:0, flags:0
physical segments used:
addr: 0x100200000 iova: 0x706000000 len: 0x200000 pagesz: 0x200000
Zone 5: name:<Capture_MZ_0>, len:0x400000, virt:0x100e00000, socket_id:0, flags:0
physical segments used:
addr: 0x100e00000 iova: 0x82c000000 len: 0x200000 pagesz: 0x200000
addr: 0x101000000 iova: 0x721200000 len: 0x200000 pagesz: 0x200000
Zone 6: name:<Capture_MZ_1>, len:0x400000, virt:0x1100c00000, socket_id:1, flags:0
physical segments used:
addr: 0x1100c00000 iova: 0xfa3800000 len: 0x200000 pagesz: 0x200000
addr: 0x1100e00000 iova: 0xf90e00000 len: 0x200000 pagesz: 0x200000
---------- END_MEMORY_ZONES -----------
------------- TAIL_QUEUES -------------
Tailq 0: qname:<RTE_LPM>, tqh_first:(nil), tqh_last:0x7ffff7fcd27c Tailq 1: qname:<RTE_LPM6>, tqh_first:(nil), tqh_last:0x7ffff7fcd2ac Tailq 2: qname:<RTE_ACL>, tqh_first:(nil), tqh_last:0x7ffff7fcd2dc Tailq 3: qname:<RTE_HASH>, tqh_first:0x100323700, tqh_last:0x10020fb40 Tailq 4: qname:<RTE_FBK_HASH>, tqh_first:(nil), tqh_last:0x7ffff7fcd33c Tailq 5: qname:<RTE_MEMBER>, tqh_first:(nil), tqh_last:0x7ffff7fcd36c Tailq 6: qname:<RTE_EVENT_RING>, tqh_first:(nil), tqh_last:0x7ffff7fcd39c Tailq 7: qname:<RTE_MEMPOOL>, tqh_first:(nil), tqh_last:0x7ffff7fcd3cc Tailq 8: qname:<RTE_RING>, tqh_first:0x1003a3940, tqh_last:0x100210580 Tailq 9: qname:<RTE_REORDER>, tqh_first:(nil), tqh_last:0x7ffff7fcd42c Tailq 10: qname:<RTE_KNI>, tqh_first:(nil), tqh_last:0x7ffff7fcd45c Tailq 11: qname:<VFIO_RESOURCE_LIST>, tqh_first:(nil), tqh_last:0x7ffff7fcd48c Tailq 12: qname:<UIO_RESOURCE_LIST>, tqh_first:0x1003e8e40, tqh_last:0x1002a0640
Tailq 13: qname:<VMBUS_RESOURCE_LIST>, tqh_first:(nil), tqh_last:0x7ffff7fcd4ec Tailq 14: qname:<RTE_LUADATA>, tqh_first:0x555555f793f0, tqh_last:0x555555f793f0
Tailq 15: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 16: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 17: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 18: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 19: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 20: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 21: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 22: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 23: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 24: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 25: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 26: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 27: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 28: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 29: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 30: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 31: qname:<>, tqh_first:(nil), tqh_last:(nil)
---------- END_TAIL_QUEUES ------------

After ~180 starts
dpdk-procinfo -- -m

EAL: Detected 12 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket_14566_cde008f6f168c
EAL: Probing VFIO support...
EAL: PCI device 0000:03:00.0 on NUMA socket 0
EAL:   probe driver: 8086:10fb net_ixgbe
eth_ixgbe_dev_init(): No TX queues configured yet. Using default TX function.
EAL: PCI device 0000:03:00.1 on NUMA socket 0
EAL:   probe driver: 8086:10fb net_ixgbe
eth_ixgbe_dev_init(): No TX queues configured yet. Using default TX function.
EAL: PCI device 0000:07:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1533 net_e1000_igb
EAL: PCI device 0000:08:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1533 net_e1000_igb

----------- MEMORY_SEGMENTS -----------
Segment 0-0: IOVA:0x706000000, len:2097152, virt:0x100200000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:10
Segment 0-1: IOVA:0x720e00000, len:2097152, virt:0x100400000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:11
Segment 0-2: IOVA:0x720c00000, len:2097152, virt:0x100600000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:12
Segment 0-3: IOVA:0x724a00000, len:2097152, virt:0x100800000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:13
Segment 0-4: IOVA:0x724800000, len:2097152, virt:0x100a00000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:14
Segment 0-5: IOVA:0x82c200000, len:2097152, virt:0x100c00000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:15
Segment 0-6: IOVA:0x82c000000, len:2097152, virt:0x100e00000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:16
Segment 0-7: IOVA:0x721200000, len:2097152, virt:0x101000000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:17
Segment 0-8: IOVA:0x721000000, len:2097152, virt:0x101200000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:18
Segment 0-9: IOVA:0x70b200000, len:2097152, virt:0x101400000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:19
Segment 0-10: IOVA:0x70b000000, len:2097152, virt:0x101600000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 fd:20
Segment 4-0: IOVA:0xf67400000, len:2097152, virt:0x1100a00000, socket_id:1, hugepage_sz:2097152, nchannel:0, nrank:0 fd:21
Segment 4-1: IOVA:0xfa3800000, len:2097152, virt:0x1100c00000, socket_id:1, hugepage_sz:2097152, nchannel:0, nrank:0 fd:22
Segment 4-2: IOVA:0xf90e00000, len:2097152, virt:0x1100e00000, socket_id:1, hugepage_sz:2097152, nchannel:0, nrank:0 fd:23
--------- END_MEMORY_SEGMENTS ---------
------------ MEMORY_ZONES -------------
Zone 0: name:<rte_eth_dev_data>, len:0x35840, virt:0x1003b1540, socket_id:0, flags:0
physical segments used:
addr: 0x100200000 iova: 0x706000000 len: 0x200000 pagesz: 0x200000
Zone 1: name:<RG_HT_fdir_0000:03:00.0>, len:0x80180, virt:0x100323780, socket_id:0, flags:0
physical segments used:
addr: 0x100200000 iova: 0x706000000 len: 0x200000 pagesz: 0x200000
Zone 2: name:<RG_HT_l2_tn_0000:03:00.0>, len:0x980, virt:0x1002a2ac0, socket_id:0, flags:0
physical segments used:
addr: 0x100200000 iova: 0x706000000 len: 0x200000 pagesz: 0x200000
Zone 3: name:<RG_HT_fdir_0000:03:00.1>, len:0x80180, virt:0x100210800, socket_id:0, flags:0
physical segments used:
addr: 0x100200000 iova: 0x706000000 len: 0x200000 pagesz: 0x200000
Zone 4: name:<RG_HT_l2_tn_0000:03:00.1>, len:0x980, virt:0x10020fbc0, socket_id:0, flags:0
physical segments used:
addr: 0x100200000 iova: 0x706000000 len: 0x200000 pagesz: 0x200000
Zone 5: name:<Capture_MZ_0>, len:0x400000, virt:0x100e00000, socket_id:0, flags:0
physical segments used:
addr: 0x100e00000 iova: 0x82c000000 len: 0x200000 pagesz: 0x200000
addr: 0x101000000 iova: 0x721200000 len: 0x200000 pagesz: 0x200000
Zone 6: name:<Capture_MZ_1>, len:0x400000, virt:0x1100c00000, socket_id:1, flags:0
physical segments used:
addr: 0x1100c00000 iova: 0xfa3800000 len: 0x200000 pagesz: 0x200000
addr: 0x1100e00000 iova: 0xf90e00000 len: 0x200000 pagesz: 0x200000
---------- END_MEMORY_ZONES -----------
------------- TAIL_QUEUES -------------
Tailq 0: qname:<RTE_LPM>, tqh_first:(nil), tqh_last:0x7ffff7fcd27c Tailq 1: qname:<RTE_LPM6>, tqh_first:(nil), tqh_last:0x7ffff7fcd2ac Tailq 2: qname:<RTE_ACL>, tqh_first:(nil), tqh_last:0x7ffff7fcd2dc Tailq 3: qname:<RTE_HASH>, tqh_first:0x100323700, tqh_last:0x10020fb40 Tailq 4: qname:<RTE_FBK_HASH>, tqh_first:(nil), tqh_last:0x7ffff7fcd33c Tailq 5: qname:<RTE_MEMBER>, tqh_first:(nil), tqh_last:0x7ffff7fcd36c Tailq 6: qname:<RTE_EVENT_RING>, tqh_first:(nil), tqh_last:0x7ffff7fcd39c Tailq 7: qname:<RTE_MEMPOOL>, tqh_first:(nil), tqh_last:0x7ffff7fcd3cc Tailq 8: qname:<RTE_RING>, tqh_first:0x1003a3940, tqh_last:0x100210580 Tailq 9: qname:<RTE_REORDER>, tqh_first:(nil), tqh_last:0x7ffff7fcd42c Tailq 10: qname:<RTE_KNI>, tqh_first:(nil), tqh_last:0x7ffff7fcd45c Tailq 11: qname:<VFIO_RESOURCE_LIST>, tqh_first:(nil), tqh_last:0x7ffff7fcd48c Tailq 12: qname:<UIO_RESOURCE_LIST>, tqh_first:0x1003e8e40, tqh_last:0x1002a0640
Tailq 13: qname:<VMBUS_RESOURCE_LIST>, tqh_first:(nil), tqh_last:0x7ffff7fcd4ec Tailq 14: qname:<RTE_LUADATA>, tqh_first:0x555555f793f0, tqh_last:0x555555f793f0
Tailq 15: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 16: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 17: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 18: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 19: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 20: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 21: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 22: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 23: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 24: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 25: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 26: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 27: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 28: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 29: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 30: qname:<>, tqh_first:(nil), tqh_last:(nil)
Tailq 31: qname:<>, tqh_first:(nil), tqh_last:(nil)
---------- END_TAIL_QUEUES ------------

If you continue to run the secondary process, then over time the hugepages will end.

This behavior is observed in the 18.11.2, 18.11.11.

Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.
#1 lore raw

https://bugs.dpdk.org/show_bug.cgi?id=898

Thomas Monjalon ([email protected]) changed:

What |Removed |Added
----------------------------------------------------------------------------

         Resolution|---                         |FIXED
             Status|UNCONFIRMED                 |RESOLVED

--- Comment #3 from Thomas Monjalon ([email protected]) --- Resolved in http://git.dpdk.org/dpdk/commit/?id=8a171e52ed

Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.