Alter.Org.UA Vote Against Software Patents
 << Back Home RU ru   www/www1/www2

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)
designed by Alter aka Alexander A. Telyatnikov powered by Apache+PHP under FBSD © 2002–2011