Date: Mon, 3 Dec 2001 21:57:49 -0800 (PST) From: Luigi Rizzo <luigi@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/conf options.i386 src/sys/i386/i386 swtch.s trap.c src/sys/net if.h netisr.h src/sys/sys systm.h src/sys/i386/include asnames.h src/sys/kern kern_clock.c src/sys/dev/fxp if_fxp.c src/sys/pci if_dc.c if_dcreg.h if_sis.c ... Message-ID: <200112040557.fB45vnD46829@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
luigi 2001/12/03 21:57:49 PST
Modified files: (Branch: RELENG_4)
sys/conf options.i386
sys/i386/i386 swtch.s trap.c
sys/net if.h netisr.h
sys/sys systm.h
sys/i386/include asnames.h
sys/kern kern_clock.c
sys/dev/fxp if_fxp.c
sys/pci if_dc.c if_dcreg.h if_sis.c if_sisreg.h
Log:
As approved by the Release Engineer, here comes the code for polling
in network device drivers (x86, non-SMP only at the moment, for
reasons that I have extensively explained on the -net mailing list).
This code lets network devices operate in a semi-polling mode,
which makes systems much more resilient to attacks and overloads.
If you don't enable it with an appropriate kernel option, your
kernel will be exactly the same as before this commit. No userland
code is affected.
To use polling you have to put the following options in your kernel
config file:
options DEVICE_POLLING
options HZ=1000 # not compulsory but strongly recommended
and enable it at runtime as follows (by default it is disabled):
sysctl kern.polling.enable=1
There are basically no other tunables related to this code,
though you might have a look at "sysctl kern.polling" to see
what other variables are there.
The device drivers supported at the moment are "dc", "fxp" and
"sis", with more to come (but this code only makes sense for 100M
and Gigabit devices). Unmodified drivers will continue to operate
as before.
Under little or moderate load you should see no difference in the
behaviour of your system. Under load, you should experience a
moderate improvement in peak performance, and a lot more stability
and responsiveness.
A quick description of the files affected (all in sys/)
conf/options.i386
DEVICE_POLLING option
i386/i386/swtch.s i386/i386/trap.c
hooks to call the polling code
net/if.h net/netisr.h sys/systm.h i386/include/asnames.h
misc. constants and variable definitions (mostly one-liner).
kern/kern_clock.c
The bulk of the polling code. Probably this code will be moved to a
separate file once equivalent functionality is added to -current.
dev/fxp/if_fxp.c pci/if_dc.c pci/if_dcreg.h pci/if_sis.c pci/if_sisreg.h
device driver modifications
Reviewed-by: -net
Approved by: jkh
Revision Changes Path
1.132.2.9 +6 -1 src/sys/conf/options.i386
1.110.2.9 +56 -2 src/sys/dev/fxp/if_fxp.c
1.89.2.5 +5 -1 src/sys/i386/i386/swtch.s
1.147.2.6 +6 -1 src/sys/i386/i386/trap.c
1.44.2.4 +2 -1 src/sys/i386/include/asnames.h
1.105.2.5 +253 -1 src/sys/kern/kern_clock.c
1.58.2.3 +10 -1 src/sys/net/if.h
1.21.2.3 +2 -1 src/sys/net/netisr.h
1.9.2.25 +72 -0 src/sys/pci/if_dc.c
1.4.2.12 +7 -0 src/sys/pci/if_dcreg.h
1.13.4.10 +66 -0 src/sys/pci/if_sis.c
1.1.4.5 +3 -0 src/sys/pci/if_sisreg.h
1.111.2.11 +14 -0 src/sys/sys/systm.h
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200112040557.fB45vnD46829>
