Bug 898 - Memory leak during interprocess communication.
Summary: Memory leak during interprocess communication.
Status: UNCONFIRMED
Alias: None
Product: DPDK
Classification: Unclassified
Component: core (show other bugs)
Version: 18.11
Hardware: x86 Linux
: Normal normal
Target Milestone: ---
Assignee: dev
URL:
Depends on:
Blocks:
 
Reported: 2021-12-09 14:14 CET by Aleksey
Modified: 2022-10-13 12:05 CEST (History)
2 users (show)



Attachments

Description Aleksey 2021-12-09 14:14:37 CET
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.
Comment 1 Alexander 2022-06-09 11:55:12 CEST
Has it been fixed? We are observing the same issue in 20.11.1.
Comment 2 Fidaullah Noonari 2022-10-13 12:05:07 CEST
This is not an inter process communication bug.
there was bug in proc-info. I have submitted patch regarding this link is given below.


https://patches.dpdk.org/project/dpdk/patch/20220904122845.141893-1-fidaullah.noonari@emumba.com/

Note You need to log in before you can comment on or make changes to this bug.