On 5/6/25 12:46, Andrey Blochintsev wrote:
Ось є документація - https://docs.kernel.org/networking/scaling.html - в якій є розділ RSS IRQ Configuration, де кажуть шо або irqbalance, або manual adjust відповідно до https://docs.kernel.org/core-api/irq/irq-affinity.html

Ок, для тесту я пішов в manul adjust й зробив відповідні smp_affinity (застопав irqbalance, звісно) - тут апаратні черги NIC чіпляються до різних IRQ, відповідно маска встановлена так, щоб розкидати це IRQ по 8 корам:

53 :: 00000000,00000000,0000ff00 :: 8-15
54 :: 00000000,00000000,00ff0000 :: 16-23
55 :: 00000000,00000000,ff000000 :: 24-31
56 :: 00000000,000000ff,00000000 :: 32-39
57 :: 00000000,0000ff00,00000000 :: 40-47
58 :: 00000000,00ff0000,00000000 :: 48-55
59 :: 00000000,ff000000,00000000 :: 56-63
60 :: 000000ff,00000000,00000000 :: 64-71

але дивлюсь на значення лічильників в /proc/interrupts й бачу що пох - шо з irqbalance, шо з маска в smp_affinity - приростає по кожному IRQ тільки на одній корі. Трафіку в цілому до біса (200к+ pps) - гадаю розкидає є шо.




А что в /proc/irq/{5[3-9],60}/{effective_affinity,effective_affinity,effective_affinity_list} ?

Гм.... такі не спрацювало -

# for n in $(grep eno1 /proc/interrupts  |awk '{print $1}' | tr -d ":"); do echo "$n :: $(cat /proc/irq/$n/smp_affinity) :: $(cat /proc/irq/$n/smp_affinity_list)"; done
[ ... ]
93 :: 00000000,00000000,000000ff :: 0-7

# cat /proc/irq/93/{effective_affinity,effective_affinity,effective_affinity_list}
00000000,00000000,00000080
00000000,00000000,00000080
7

доки я буду курити ту доку, є ідеї - чому?

дякую

https://www.kernel.org/doc/html/v6.13/core-api/genericirq.html

effective_affinity

The effective IRQ affinity on SMP as some irq chips do not allow multi CPU destinations. A subset of affinity.


-- 
Volodymyr Litovka
  "Vision without Execution is Hallucination." -- Thomas Edison