cvs commit: src/sys/dev/usb usb_ethersubr.c src/sys/kern
kern_poll.c src/sys/net if_ppp.c netisr.c netisr.h
src/sys/netatalk aarp.c ddp_input.c ddp_usrreq.c src/sys/netatm
atm_subr.c src/sys/netgraph ng_base.c src/sys/netinet if_ether.c...
Sam Leffler
sam at errno.com
Sat Nov 8 14:32:19 PST 2003
On Saturday 08 November 2003 02:28 pm, Sam Leffler wrote:
> sam 2003/11/08 14:28:40 PST
>
> FreeBSD src repository
>
> Modified files:
> sys/dev/usb usb_ethersubr.c
> sys/kern kern_poll.c
> sys/net if_ppp.c netisr.c netisr.h
> sys/netatalk aarp.c ddp_input.c ddp_usrreq.c
> sys/netatm atm_subr.c
> sys/netgraph ng_base.c
> sys/netinet if_ether.c ip_input.c
> sys/netinet6 ip6_input.c
> sys/netipx ipx_input.c
> sys/netnatm natm.c natm_proto.c
> Log:
> o add a flags parameter to netisr_register that is used to specify
> whether or not the isr needs to hold Giant when running; Giant-less
> operation is also controlled by the setting of debug_mpsafenet
> o mark all netisr's except NETISR_IP as needing Giant
> o add a GIANT_REQUIRED assertion to the top of netisr's that need Giant
> o pickup Giant (when debug_mpsafenet is 1) inside ip_input before
> calling up with a packet
> o change netisr handling so swi_net runs w/o Giant; instead we grab
> Giant before invoking handlers based on whether the handler needs Giant
> o change netisr handling so that netisr's that are marked MPSAFE may
> have multiple instances active at a time
> o add netisr statistics for packets dropped because the isr is inactive
Note that these change should not change existing behaviour so long as
debug.mpsafenet is 0 (the default). Once I've got some other stuff committed
it should be safe to enable mpsafenet for testing.
Note also that I did not mark netgraph's isr MPSAFE. While I believe the core
netgraph code is safe I can't be sure that all the various modules are ok.
I'll leave it to someone else (harti?) to verify this and mark the netisr
MPSAFE.
Sam
More information about the cvs-src
mailing list