net.isr.maxthreads tunable?

Erich Weiler weiler at soe.ucsc.edu
Sat Nov 12 19:31:04 UTC 2011


Greetings!  I was looking at this page on BSD firewalling at:

https://calomel.org/network_performance.html

and got pretty far in it for tuning some pf stuff but am having a couple 
tuning issues...  I'm using FreeBSD 8.1 amd64.

I was able to set most the the loader.conf stuff, but 
"net.isr.maxthreads" seems to always be set to "1" even if I try to set 
it higher in loader.conf excplicitly (or loader.conf.local).  I did some 
digging and it seems like it is set on boot and is based on the number 
of CPU cores you have available.  Which is weird, because I see 8 cores:

# dmesg | grep maxthreads
netisr_init: forcing maxthreads to 1 and bindthreads to 0 for device polling

# dmesg | grep CPU
CPU: Intel(R) Xeon(R) CPU           X5677  @ 3.47GHz (3458.02-MHz 
K8-class CPU)
FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
cpu0: <ACPI CPU> on acpi0
cpu1: <ACPI CPU> on acpi0
cpu2: <ACPI CPU> on acpi0
cpu3: <ACPI CPU> on acpi0
cpu4: <ACPI CPU> on acpi0
cpu5: <ACPI CPU> on acpi0
cpu6: <ACPI CPU> on acpi0
cpu7: <ACPI CPU> on acpi0
est: CPU supports Enhanced Speedstep, but is not recognized.
p4tcc0: <CPU Frequency Thermal Control> on cpu0
est: CPU supports Enhanced Speedstep, but is not recognized.
p4tcc1: <CPU Frequency Thermal Control> on cpu1
est: CPU supports Enhanced Speedstep, but is not recognized.
p4tcc2: <CPU Frequency Thermal Control> on cpu2
est: CPU supports Enhanced Speedstep, but is not recognized.
p4tcc3: <CPU Frequency Thermal Control> on cpu3
est: CPU supports Enhanced Speedstep, but is not recognized.
p4tcc4: <CPU Frequency Thermal Control> on cpu4
est: CPU supports Enhanced Speedstep, but is not recognized.
p4tcc5: <CPU Frequency Thermal Control> on cpu5
est: CPU supports Enhanced Speedstep, but is not recognized.
p4tcc6: <CPU Frequency Thermal Control> on cpu6
est: CPU supports Enhanced Speedstep, but is not recognized.
p4tcc7: <CPU Frequency Thermal Control> on cpu7
SMP: AP CPU #1 Launched!
SMP: AP CPU #6 Launched!
SMP: AP CPU #7 Launched!
SMP: AP CPU #2 Launched!
SMP: AP CPU #4 Launched!
SMP: AP CPU #3 Launched!
SMP: AP CPU #5 Launched!

Seems like netisr_init is overriding my preferences at boot time...  Do 
you know a way around this?  It almost seems like netisr_init thinks I 
have one CPU, if I am reading this right...

I can't set net.isr.maxthreads manually either:

# sysctl net.isr.maxthreads=3
sysctl: oid 'net.isr.maxthreads' is read only

I have a feeling that particular tunable will help a lot if I can get it 
working.

Any assistance appreciated!

cheers,
erich


More information about the freebsd-net mailing list