Skip to contentSkip to conversation

how to distribute irqs of ixgbevf

DISCUSSION J.Hwan Kim 2 participants 4 messages Aug 25, 2011

Subsystems (2)
lore
Share & tools
lore

J.Hwan Kim

author
#0 lore raw

Hi, everyone

The interrupts of my ixgbevf driver occurs only Core 0 although the user space "irqbalance" serivce is working.

How can I distribute the interrupt of RX in ixgbevf to all cores?

cat /proc/interrupts | grep "isv"

  97:          8          0          0          0          0          
0          0          0   PCI-MSI-edge      isv0-rx-0
  99:          7          0          0          0          0          
0          0          0   PCI-MSI-edge      isv0:lsc
 103:       2059      0          0          0          0          
0          0          0   PCI-MSI-edge      isv2-rx-0

104: 14 0 0 0 0
0 0 0 PCI-MSI-edge isv2-tx-0
105: 1 0 0 0 0
0 0 0 PCI-MSI-edge isv2:mbx

"isv" is netdevice name of my ixgbevf.

Thanks in advance.

Best Regards,

J.Hwan Kim

#1 lore raw
Quoted 15 lines · J.Hwan Kim

Hi, everyone

The interrupts of my ixgbevf driver occurs only Core 0 although the user space "irqbalance" serivce is working.

How can I distribute the interrupt of RX in ixgbevf to all cores?

cat /proc/interrupts | grep "isv"
97: 8 0 0 0 0
0 0 0 PCI-MSI-edge isv0-rx-0
99: 7 0 0 0 0
0 0 0 PCI-MSI-edge isv0:lsc
103: 2059 0 0 0 0
0 0 0 PCI-MSI-edge isv2-rx-0
104: 14 0 0 0 0

Quoted 7 lines
0          0          0   PCI-MSI-edge      isv2-tx-0
  105:          1         0          0          0          0          
0          0          0   PCI-MSI-edge      isv2:mbx

"isv" is netdevice name of my ixgbevf.

Given load is very small, irqbalance chose to send interrupts on a single cpu.

author
#2 lore raw
Quoted 20 lines · Eric Dumazet
Quoted 19 lines · J.Hwan Kim

Hi, everyone

The interrupts of my ixgbevf driver occurs only Core 0 although the user space "irqbalance" serivce is working.

How can I distribute the interrupt of RX in ixgbevf to all cores?

cat /proc/interrupts | grep "isv"
97: 8 0 0 0 0
0 0 0 PCI-MSI-edge isv0-rx-0
99: 7 0 0 0 0
0 0 0 PCI-MSI-edge isv0:lsc
103: 2059 0 0 0 0

0          0          0   PCI-MSI-edge      isv2-rx-0
   104:         14        0          0          0          0
0          0          0   PCI-MSI-edge      isv2-tx-0

105: 1 0 0 0 0
0 0 0 PCI-MSI-edge isv2:mbx

Quoted 3 lines
Quoted 1 line

"isv" is netdevice name of my ixgbevf.

Given load is very small, irqbalance chose to send interrupts on a single cpu.

When I measure cpu load with "top", it indicates CPU load around 99%

author
#3 lore raw
In reply to Eric Dumazet
Quoted 20 lines · Eric Dumazet
Quoted 19 lines · J.Hwan Kim

Hi, everyone

The interrupts of my ixgbevf driver occurs only Core 0 although the user space "irqbalance" serivce is working.

How can I distribute the interrupt of RX in ixgbevf to all cores?

cat /proc/interrupts | grep "isv"
97: 8 0 0 0 0
0 0 0 PCI-MSI-edge isv0-rx-0
99: 7 0 0 0 0
0 0 0 PCI-MSI-edge isv0:lsc
103: 2059 0 0 0 0

0          0          0   PCI-MSI-edge      isv2-rx-0
   104:         14        0          0          0          0
0          0          0   PCI-MSI-edge      isv2-tx-0

105: 1 0 0 0 0
0 0 0 PCI-MSI-edge isv2:mbx

Quoted 5 lines
Quoted 3 lines

"isv" is netdevice name of my ixgbevf.

Given load is very small, irqbalance chose to send interrupts on a single cpu.

This is CPU load measured by "top" and my cores are 8.

PID USER PR NI VIRT RES SHR S %CPU %MEM
TIME+ COMMAND
3 root 20 0 0 0 0 R 99
0.0 70:05.48 ksoftirqd/0