cvs commit: src/sys/conf options src/sys/sys kernel.h src/sys/net netisr.c

Robert Watson rwatson at
Thu Sep 2 20:09:55 PDT 2004

rwatson     2004-09-03 03:09:55 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_5)
    sys/conf             options 
    sys/sys              kernel.h 
    sys/net              netisr.c 
  Merge sys/conf/options:1.478, sys/net/netisr.c:1.12, and
  sys/sys/kernel.h:1.118 to RELENG_5:
    Change the default disposition of debug.mpsafenet from 0 to 1, which
    will cause the network stack to operate without the Giant lock by
    default.  This change has the potential to improve performance by
    increasing parallelism and decreasing latency in network processing.
    Due to the potential exposure of existing or new bugs, the following
    compatibility functionality is maintained:
    - It is still possible to disable Giant-free operation by setting
      debug.mpsafenet to 0 in loader.conf.
    - Add "options NET_WITH_GIANT", which will restore the default value of
      debug.mpsafenet to 0, and is intended for use on systems compiled with
      known unsafe components, or where a more conservative configuration is
    - Add a new declaration, NET_NEEDS_GIANT("componentname"), which permits
      kernel components to declare dependence on Giant over the network
      stack.  If the declaration is made by a preloaded module or a compiled
      in component, the disposition of debug.mpsafenet will be set to 0 and
      a warning concerning performance degraded operation printed to the
      console.  If it is declared by a loadable kernel module after boot, a
      warning is displayed but the disposition cannot be changed.  This is
      implemented by defining a new SYSINIT() value, SI_SUB_SETTINGS, which
      is intended for the processing of configuration choices after tunables
      are read in and the console is available to generate errors, but
      before much else gets going.
    This compatibility behavior will go away when we've finished the last
    of the locking work and are confident that operation is correct.
  Approved by:    re (scottl, kensmith)
  Revision   Changes    Path
  1.475.2.2  +1 -0      src/sys/conf/options   +82 -3     src/sys/net/netisr.c  +6 -0      src/sys/sys/kernel.h

More information about the cvs-src mailing list