cvs commit: src/sys/i386/i386 nexus.c src/sys/i386/include atomic.h src/sys/kern kern_poll.c lwkt_serialize.c src/sys/net if.c if_var.h rtsock.c src/sbin/ifconfig ifconfig.c src/sys/dev/netif/dc if_dc.c src/sys/dev/netif/em if_em.c if_em.h ...
Matthew Dillon
dillon at crater.dragonflybsd.org
Tue May 24 18:45:44 PDT 2005
dillon 2005/05/24 18:44:33 PDT
DragonFly src repository
Modified files:
sys/i386/i386 nexus.c
sys/i386/include atomic.h
sys/kern kern_poll.c lwkt_serialize.c
sys/net if.c if_var.h rtsock.c
sbin/ifconfig ifconfig.c
sys/dev/netif/dc if_dc.c
sys/dev/netif/em if_em.c if_em.h
sys/dev/netif/fwe if_fwe.c
sys/dev/netif/fxp if_fxp.c
sys/dev/netif/nge if_nge.c
sys/dev/netif/re if_re.c
sys/dev/netif/rl if_rl.c
sys/dev/netif/sis if_sis.c
sys/dev/netif/vr if_vr.c
sys/dev/netif/wi if_wi.c
sys/net/altq altq_rmclass.c
Log:
Rewrite the polling code. Instead of trying to do fancy polling enablement
from inside the IF interrupt itself, which creates a headache in the code,
simply allow IFF_POLLING to be set and cleared via ifconfig. This greatly
simplifies both the networking code and the polling code and allows polling
to be enabled and disabled at will on a per-network-interface basis.
* Drivers no longer have to have polling checks in the interrupt path.
* An if_poll function vector has been added. Polling is supported if the
driver initializes the vector.
* Registration command added to the poll function command list.
* Driver code for registration and deregistration is now greatly simplified.
The kernel polling code no longer randomly turns off the polling bit if an
interface goes down or is reset.
Remove IFCAP_POLLING, it serves no purpose.
Fix a couple of bugs in the serializer code. Add a warning in
nexus_setup_intr if a driver tries to specify a serializer and an SPL.
A driver can specify one or the other, not both.
Convert the EM driver to use the new serializer API instead of SPLs.
Add ifconfig poll and ifconfig -poll support to ifconfig, and fix bugs
in the rtsock code that only returned the low 16 bits of the interface
flags so ifconfig properly reports when polling mode is turned on for an
interface.
NOTE to people using polling. You must first enable polling via
kern.polling.enable, and then may specify the 'poll' directive in ifconfig
to enable it on a per interface basis. If IFF_POLLING refuses to be set,
the device does not support polling.
Revision Changes Path
1.15 +6 -2 src/sys/i386/i386/nexus.c
1.11 +1 -1 src/sys/i386/include/atomic.h
1.15 +62 -40 src/sys/kern/kern_poll.c
1.2 +5 -1 src/sys/kern/lwkt_serialize.c
1.35 +13 -1 src/sys/net/if.c
1.25 +12 -3 src/sys/net/if_var.h
1.26 +2 -2 src/sys/net/rtsock.c
1.22 +3 -0 src/sbin/ifconfig/ifconfig.c
1.27 +30 -26 src/sys/dev/netif/dc/if_dc.c
1.32 +92 -82 src/sys/dev/netif/em/if_em.c
1.10 +3 -1 src/sys/dev/netif/em/if_em.h
1.15 +16 -32 src/sys/dev/netif/fwe/if_fwe.c
1.27 +33 -34 src/sys/dev/netif/fxp/if_fxp.c
1.24 +43 -43 src/sys/dev/netif/nge/if_nge.c
1.12 +39 -46 src/sys/dev/netif/re/if_re.c
1.22 +36 -46 src/sys/dev/netif/rl/if_rl.c
1.23 +38 -47 src/sys/dev/netif/sis/if_sis.c
1.23 +19 -4 src/sys/dev/netif/vr/if_vr.c
1.22 +31 -39 src/sys/dev/netif/wi/if_wi.c
1.2 +5 -3 src/sys/net/altq/altq_rmclass.c
http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/nexus.c.diff?r1=1.14&r2=1.15&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/include/atomic.h.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_poll.c.diff?r1=1.14&r2=1.15&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/lwkt_serialize.c.diff?r1=1.1&r2=1.2&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/if.c.diff?r1=1.34&r2=1.35&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/if_var.h.diff?r1=1.24&r2=1.25&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/rtsock.c.diff?r1=1.25&r2=1.26&f=u
http://www.dragonflybsd.org/cvsweb/src/sbin/ifconfig/ifconfig.c.diff?r1=1.21&r2=1.22&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/dc/if_dc.c.diff?r1=1.26&r2=1.27&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/em/if_em.c.diff?r1=1.31&r2=1.32&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/em/if_em.h.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/fwe/if_fwe.c.diff?r1=1.14&r2=1.15&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/fxp/if_fxp.c.diff?r1=1.26&r2=1.27&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/nge/if_nge.c.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/re/if_re.c.diff?r1=1.11&r2=1.12&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/rl/if_rl.c.diff?r1=1.21&r2=1.22&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/sis/if_sis.c.diff?r1=1.22&r2=1.23&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/vr/if_vr.c.diff?r1=1.22&r2=1.23&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/wi/if_wi.c.diff?r1=1.21&r2=1.22&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/altq/altq_rmclass.c.diff?r1=1.1&r2=1.2&f=u
More information about the Commits
mailing list