Date: Mon, 3 Dec 2001 22:17:42 -0800 From: Luigi Rizzo <luigi@freebsd.org> To: net@freebsd.org Subject: HEADS-UP: net polling code now in STABLE. Message-ID: <20011203221742.A50473@iguana.aciri.org>
next in thread | raw e-mail | index | archive | help
[Bcc to -stable because of relevance there]
With the approval of the release engineer, a revised version of
the network polling code is now in STABLE. It would be great if
you could try it out and send feedback, so we con sort out issues
(if any) before the release of 4.5.
Do not be afraid to upgrade, because unless you explicitly enable
the new code with the kernel option mentioned below, your kernel
will not be affected by the patch.
The code is only for i386 architecture, non-SMP (it would be rather
useless on SMP boxes, anyways). Devices supported so far are "dc",
"fxp" and "sis". I can patch more drivers if you ask, but you need
to test the patches yourself because i do not have access to other
100M and 1G cards (except perhaps "xl").
[As a side note -- there have been significant performance improvement
changes to the "dc" and "sis" drivers recently, so if you have one
of these two cards, it might be worthwhile to upgrade].
The commit message follows. Have fun.
cheers
luigi
----- Forwarded message from Luigi Rizzo <luigi@FreeBSD.org> -----
Date: Mon, 3 Dec 2001 21:57:49 -0800 (PST)
From: Luigi Rizzo <luigi@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 ...
To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
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
----- End forwarded message -----
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011203221742.A50473>
