SMP patch for NETISR, FreeBSD 7.x
by Alter (alterX@alter.org.ua (remove X))
Network dispatch netisr can now be paralellized on SMP machines.
Since netisr was not changed for a long time, this patch may bu suitable for
earlier versions of kernel.
Netisr behavior is now managed via sysctl:
net.isr.maxthreads=NNN
Also added one specific option:
net.isr.direct_arp=[0|1]
Fixed compilation bugs for uniprocessor systems (there were several references to SMP-specific variables)
netisr_smp.7x.20110501.patch.gz
FreeBSD bugtrack ID: 156769
2011.05.02
The 1st version of patch
netisr_smp.7x.patch.gz
2010.01.01
How to cook this (some words about optimization)
Important sysctls:
net.isr.direct=0|1
net.isr.direct_arp=0|1
net.isr.maxthreads=NNN
net.inet.ip.fastforwarding=0|1
net.inet.ip.dummynet.io_fast=0|1
net.inet.ip.intr_queue_maxlen=NNN
net.route.netisr_maxqlen=NNN
Some more details:
- net.isr.direct -
--
- net.isr.direct_arp -
--
- net.isr.maxthreads -
--
- net.inet.ip.fastforwarding -
--
- net.inet.ip.dummynet.io_fast -
--
- net.inet.ip.intr_queue_maxlen, net.route.netisr_maxqlen -
--
Examples
2 cores + 2 intel NICs (em)
net.isr.direct=1
net.isr.direct_arp=1
net.isr.maxthreads=1
net.inet.ip.fastforwarding=0
net.inet.ip.dummynet.io_fast=1
8 cores + 2 Broadcom NICs (bge)
net.isr.direct=0
net.isr.direct_arp=1
net.isr.maxthreads=5
net.inet.ip.fastforwarding=0
net.inet.ip.dummynet.io_fast=1
PS.
See also:
alterX@alter.org.ua (remove X)
|