cvs commit: src/sys/bus/usb usb_ethersubr.c src/sys/net bpf.c if.c netisr.c netisr.h netmsg.h src/sys/net/ppp if_ppp.c src/sys/netbt bt_proto.c src/sys/netgraph/netgraph ng_base.c src/sys/netgraph7 ng_base.c src/sys/netinet if_ether.c ip_demux.c ip_input.c ...

Sepherosa Ziehau sephe at crater.dragonflybsd.org
Tue Sep 23 04:31:55 PDT 2008


sephe       2008/09/23 04:28:50 PDT

DragonFly src repository

  Modified files:
    sys/bus/usb          usb_ethersubr.c 
    sys/net              bpf.c if.c netisr.c netisr.h netmsg.h 
    sys/net/ppp          if_ppp.c 
    sys/netbt            bt_proto.c 
    sys/netgraph/netgraph ng_base.c 
    sys/netgraph7        ng_base.c 
    sys/netinet          if_ether.c ip_demux.c ip_input.c 
                         tcp_subr.c udp_usrreq.c 
    sys/netinet6         ip6_input.c 
    sys/netproto/atalk   ddp_usrreq.c 
    sys/netproto/atm     atm_subr.c 
    sys/netproto/ipx     ipx_input.c 
    sys/netproto/mpls    mpls_input.c 
    sys/netproto/natm    natm.c 
    sys/netproto/ns      ns_input.c 
    sys/sys              protosw.h 
  Log:
  Add following three network protocol threads running mode:
  1) BGL (default)
  2) Adaptive BGL.  Protocol threads run without BGL by default.  BGL will be
     held if the received msg does not have MSGF_MPSAFE turned on the ms_flags
     field
  3) No BGL (experimental)
  
  The code on the main path is done by dillon@
  
  Following three sysctls and tunables are added to adjust the "mode":
  net.netisr.mpsafe_thread
  net.inet.tcp.mpsafe_thread
  net.inet.udp.mpsafe_thread
  
  They have same set of values,
  0 (default) -- BGL
  1 	    -- Adaptive BGL
  2 	    -- No BGL
  
  NETISR_FLAG_MPSAFE is added (netisr.ni_flags), so that:
  - netisr_queue() and schednetisr() could set MSGF_MPSAFE during msg
    initialization
  - netisr_run() (called by ether_input_oncpu()) could hold BGL based on this flag
    before calling netisr's handler
  
  PR_MPSAFE is added (protosw.pr_flags), so that tranport_processing_oncpu() could
  hold BGL before calling protocol's input handler
  
  Kernel API changes:
  - The thread parameter to netmsg_service_loop() must be supplied (running mode)
    and it must have the type of "int *"
  - netisr_register() takes additional flags parameter to indicate whether its
    handler is MPSAFE (NETISR_FLAG_MPSAFE) or not
  
  Reviewed-by: dillon@
  
  Revision  Changes    Path
  1.20      +1 -1      src/sys/bus/usb/usb_ethersubr.c
  1.50      +1 -1      src/sys/net/bpf.c
  1.80      +3 -2      src/sys/net/if.c
  1.46      +91 -18    src/sys/net/netisr.c
  1.36      +8 -2      src/sys/net/netisr.h
  1.9       +2 -0      src/sys/net/netmsg.h
  1.40      +1 -1      src/sys/net/ppp/if_ppp.c
  1.5       +1 -1      src/sys/netbt/bt_proto.c
  1.27      +1 -1      src/sys/netgraph/netgraph/ng_base.c
  1.3       +1 -2      src/sys/netgraph7/ng_base.c
  1.50      +1 -1      src/sys/netinet/if_ether.c
  1.41      +4 -7      src/sys/netinet/ip_demux.c
  1.108     +29 -7     src/sys/netinet/ip_input.c
  1.61      +34 -4     src/sys/netinet/tcp_subr.c
  1.46      +9 -0      src/sys/netinet/udp_usrreq.c
  1.37      +1 -1      src/sys/netinet6/ip6_input.c
  1.13      +3 -3      src/sys/netproto/atalk/ddp_usrreq.c
  1.22      +1 -1      src/sys/netproto/atm/atm_subr.c
  1.19      +1 -1      src/sys/netproto/ipx/ipx_input.c
  1.3       +1 -1      src/sys/netproto/mpls/mpls_input.c
  1.30      +2 -2      src/sys/netproto/natm/natm.c
  1.22      +1 -1      src/sys/netproto/ns/ns_input.c
  1.23      +13 -0     src/sys/sys/protosw.h


http://www.dragonflybsd.org/cvsweb/src/sys/bus/usb/usb_ethersubr.c.diff?r1=1.19&r2=1.20&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/bpf.c.diff?r1=1.49&r2=1.50&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/if.c.diff?r1=1.79&r2=1.80&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/netisr.c.diff?r1=1.45&r2=1.46&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/netisr.h.diff?r1=1.35&r2=1.36&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/netmsg.h.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/ppp/if_ppp.c.diff?r1=1.39&r2=1.40&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netbt/bt_proto.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netgraph/netgraph/ng_base.c.diff?r1=1.26&r2=1.27&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netgraph7/ng_base.c.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet/if_ether.c.diff?r1=1.49&r2=1.50&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet/ip_demux.c.diff?r1=1.40&r2=1.41&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet/ip_input.c.diff?r1=1.107&r2=1.108&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet/tcp_subr.c.diff?r1=1.60&r2=1.61&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet/udp_usrreq.c.diff?r1=1.45&r2=1.46&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet6/ip6_input.c.diff?r1=1.36&r2=1.37&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netproto/atalk/ddp_usrreq.c.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netproto/atm/atm_subr.c.diff?r1=1.21&r2=1.22&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netproto/ipx/ipx_input.c.diff?r1=1.18&r2=1.19&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netproto/mpls/mpls_input.c.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netproto/natm/natm.c.diff?r1=1.29&r2=1.30&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netproto/ns/ns_input.c.diff?r1=1.21&r2=1.22&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/protosw.h.diff?r1=1.22&r2=1.23&f=u





More information about the Commits mailing list