Since the "eal-intr-thread" was introduced in versions >18.05 there seems to be 
a memory leak and processor utilization issue with the i40e driver. 

Just running testpmd and watching the threads in top shows the issue: 

​ 2075 root 99 0 4110M 3063M CPU0 0 0:20 99.87% testpmd{eal-intr-thread} 

2075 root 103 0 8453M 7409M CPU0 0 1:49 100.00% testpmd{eal-intr-thread} 

2075 root 103 0 10G 9352M CPU0 0 2:28 100.00% testpmd{eal-intr-thread} 

It will run until it crashes when the machine runs out of memory. 

This is a box configured with only one port of a i40e enabled for DPDK and 
using the latest 19.05 release. testpmd output is below. 

Any ideas? 

Thanks in advance, 

Mit Matelske 


root@fbl:~ # ./testpmd 
EAL: Sysctl reports 8 cpus 
EAL: Detected 8 lcore(s) 
EAL: Detected 1 NUMA nodes 
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket 
EAL: Contigmem driver has 2 buffers, each of size 1GB 
EAL: WARNING! Base virtual address hint (0x100005000 != 0x8015b7000) not 
respected! 
EAL: This may cause issues with mapping memory into secondary processes 
EAL: WARNING! Base virtual address hint (0x10000b000 != 0x800960000) not 
respected! 
EAL: This may cause issues with mapping memory into secondary processes 
EAL: WARNING! Base virtual address hint (0x24000c000 != 0x840000000) not 
respected! 
EAL: This may cause issues with mapping memory into secondary processes 
EAL: Mapped memory segment 0 @ 0x840000000: physaddr:0x140000000, len 
1073741824 
EAL: Mapped memory segment 1 @ 0x880000000: physaddr:0x180000000, len 
1073741824 
EAL: PCI device 0000:01:00.0 on NUMA socket 0 
EAL: probe driver: 8086:10fb net_ixgbe 
EAL: 0000:01:00.0 not managed by UIO driver, skipping 
EAL: PCI device 0000:01:00.1 on NUMA socket 0 
EAL: probe driver: 8086:10fb net_ixgbe 
EAL: 0000:01:00.1 not managed by UIO driver, skipping 
EAL: PCI device 0000:02:00.0 on NUMA socket 0 
EAL: probe driver: 8086:1572 net_i40e 
EAL: 0000:02:00.0 not managed by UIO driver, skipping 
EAL: PCI device 0000:02:00.1 on NUMA socket 0 
EAL: probe driver: 8086:1572 net_i40e 
EAL: 0000:02:00.1 not managed by UIO driver, skipping 
EAL: PCI device 0000:02:00.2 on NUMA socket 0 
EAL: probe driver: 8086:1572 net_i40e 
EAL: 0000:02:00.2 not managed by UIO driver, skipping 
EAL: PCI device 0000:02:00.3 on NUMA socket 0 
EAL: probe driver: 8086:1572 net_i40e 
i40e_GLQF_reg_init(): i40e device 0000:02:00.3 changed global register 
[0x002689a0]. original: 0x00000000, new: 0x00000029 
i40e_GLQF_reg_init(): i40e device 0000:02:00.3 changed global register 
[0x00268ca4]. original: 0x00001840, new: 0x00009420 
i40e_aq_debug_write_global_register(): i40e device 0000:02:00.3 changed global 
register [0x0026c7a0]. original: 0xa8, after: 0x28 
EAL: PCI device 0000:03:00.0 on NUMA socket 0 
EAL: probe driver: 8086:150e net_e1000_igb 
EAL: 0000:03:00.0 not managed by UIO driver, skipping 
EAL: PCI device 0000:03:00.1 on NUMA socket 0 
EAL: probe driver: 8086:150e net_e1000_igb 
EAL: 0000:03:00.1 not managed by UIO driver, skipping 
EAL: PCI device 0000:04:00.0 on NUMA socket 0 
EAL: probe driver: 8086:150e net_e1000_igb 
EAL: 0000:04:00.0 not managed by UIO driver, skipping 
EAL: PCI device 0000:04:00.1 on NUMA socket 0 
EAL: probe driver: 8086:150e net_e1000_igb 
EAL: 0000:04:00.1 not managed by UIO driver, skipping 
testpmd: create a new mbuf pool <mbuf_pool_socket_0>: n=203456, size=2176, 
socket=0 
testpmd: preferred mempool ops selected: ring_mp_mc 

Warning! port-topology=paired and odd forward ports number, the last port will 
pair with itself. 

Configuring Port 0 (socket 0) 
Port 0: 00:90:0B:45:F7:C1 
Checking link statuses... 
Done 
No commandline core given, start packet forwarding 
io packet forwarding - ports=1 - cores=1 - streams=1 - NUMA support enabled, MP 
allocation mode: native 
Logical Core 1 (socket 0) forwards packets on 1 streams: 
RX P=0/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00 

io packet forwarding packets/burst=32 
nb forwarding cores=1 - nb forwarding ports=1 
port 0: RX queue number: 1 Tx queue number: 1 
Rx offloads=0x0 Tx offloads=0x10000 
RX queue: 0 
RX desc=256 - RX free threshold=32 
RX threshold registers: pthresh=8 hthresh=8 wthresh=0 
RX Offloads=0x0 
TX queue: 0 
TX desc=256 - TX free threshold=32 
TX threshold registers: pthresh=32 hthresh=0 wthresh=0 
TX offloads=0x10000 - TX RS bit threshold=32 
Press enter to exit 

Reply via email to