<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test2/sys/net/netisr.c, branch release/5.5.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F5.5.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F5.5.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/'/>
<updated>2005-09-26T18:48:01Z</updated>
<entry>
<title>Merge missing patch hunk from netisr.c:1.12 from HEAD to RELENG_5:</title>
<updated>2005-09-26T18:48:01Z</updated>
<author>
<name>Robert Watson</name>
<email>rwatson@FreeBSD.org</email>
</author>
<published>2005-09-26T18:48:01Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=db5049ed9298191d92747e3a3d47ce2d81b187c6'/>
<id>urn:sha1:db5049ed9298191d92747e3a3d47ce2d81b187c6</id>
<content type='text'>
  Include opt_net.h from netisr.c, or compiling in NET_WITH_GIANT
  will not change the default setting for debug.mpsafenet.

Submitted by:	Ed Maste &lt;emaste at phaedrus dot sandvine dot ca&gt;
</content>
</entry>
<entry>
<title>MFC 1.15: Correctly unregister netisr's.</title>
<updated>2004-10-14T19:19:24Z</updated>
<author>
<name>Andre Oppermann</name>
<email>andre@FreeBSD.org</email>
</author>
<published>2004-10-14T19:19:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=9dc161731f492be77c483752f27a2351c8b2e6f7'/>
<id>urn:sha1:9dc161731f492be77c483752f27a2351c8b2e6f7</id>
<content type='text'>
Approved by:	re (scottl)
</content>
</entry>
<entry>
<title>MFC: Apply error and success logic consistently to the function netisr_queue()</title>
<updated>2004-09-15T15:14:19Z</updated>
<author>
<name>Andre Oppermann</name>
<email>andre@FreeBSD.org</email>
</author>
<published>2004-09-15T15:14:19Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=c29d01eeb398bdf5828d3cb2e975346498a2db2d'/>
<id>urn:sha1:c29d01eeb398bdf5828d3cb2e975346498a2db2d</id>
<content type='text'>
and its users.

Approved by:	re (kensmith)
</content>
</entry>
<entry>
<title>Merge sys/conf/options:1.478, sys/net/netisr.c:1.12, and</title>
<updated>2004-09-03T03:09:55Z</updated>
<author>
<name>Robert Watson</name>
<email>rwatson@FreeBSD.org</email>
</author>
<published>2004-09-03T03:09:55Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=226a384ac389d16073ea46766812e0ea477d1340'/>
<id>urn:sha1:226a384ac389d16073ea46766812e0ea477d1340</id>
<content type='text'>
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
    desired.

  - 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)
</content>
</entry>
<entry>
<title>Comment clarifying debug_mpsafenet.</title>
<updated>2004-07-18T21:50:22Z</updated>
<author>
<name>Robert Watson</name>
<email>rwatson@FreeBSD.org</email>
</author>
<published>2004-07-18T21:50:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=08f85b089e659c5a157dae25cda39ec3b98bcb8b'/>
<id>urn:sha1:08f85b089e659c5a157dae25cda39ec3b98bcb8b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>o add a flags parameter to netisr_register that is used to specify</title>
<updated>2003-11-08T22:28:40Z</updated>
<author>
<name>Sam Leffler</name>
<email>sam@FreeBSD.org</email>
</author>
<published>2003-11-08T22:28:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=7902224c6bf05f57bba57a72b6d11d4023a84883'/>
<id>urn:sha1:7902224c6bf05f57bba57a72b6d11d4023a84883</id>
<content type='text'>
  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

Supported by:	FreeBSD Foundation
</content>
</entry>
<entry>
<title>o make debug_mpsafenet globally visible</title>
<updated>2003-11-05T23:42:51Z</updated>
<author>
<name>Sam Leffler</name>
<email>sam@FreeBSD.org</email>
</author>
<published>2003-11-05T23:42:51Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=d3be1471c71fdfb310846f91308f29f40eb8ce2f'/>
<id>urn:sha1:d3be1471c71fdfb310846f91308f29f40eb8ce2f</id>
<content type='text'>
o move it from subr_bus.c to netisr.c where it more properly belongs
o add NET_PICKUP_GIANT and NET_DROP_GIANT macros that will be used to
  grab Giant as needed when MPSAFE operation is enabled

Supported by:	FreeBSD Foundation
</content>
</entry>
<entry>
<title>When direct dispatching an netisr (net.isr.enable=1), if there are already</title>
<updated>2003-10-03T18:27:24Z</updated>
<author>
<name>Robert Watson</name>
<email>rwatson@FreeBSD.org</email>
</author>
<published>2003-10-03T18:27:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=5fd04e380fadccd5b9458a5442f04cc9f40bbcdc'/>
<id>urn:sha1:5fd04e380fadccd5b9458a5442f04cc9f40bbcdc</id>
<content type='text'>
any queued packets for the isr, process those packets before the newly
submitted packet, maintaining ordering of all packets being delivered
to the netisr.  Remove the bypass counter since we don't bypass anymore.
Leave the comment about possible problems and options since later
performance optimization may change the strategy for addressing ordering
problems here.

Specifically, this maintains the strong isr ordering guarantee; additional
parallelism and lower latency may be possible by moving to weaker
guarantees (per-interface, for example).  We will probably at some point
also want to remove the one instance netisr dispatch limit currently
enforced by a mutex, but it's not clear that's 100% safe yet, even in
the netperf branch.

Reviewed by:	sam, others
</content>
</entry>
<entry>
<title>Create a tunable for net.isr.enable so that it may be set from</title>
<updated>2003-10-02T02:54:10Z</updated>
<author>
<name>Robert Watson</name>
<email>rwatson@FreeBSD.org</email>
</author>
<published>2003-10-02T02:54:10Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=e590eca2ad1d48aa12b53e7cfa904b50b141076b'/>
<id>urn:sha1:e590eca2ad1d48aa12b53e7cfa904b50b141076b</id>
<content type='text'>
inception, rather than having to wait for the boot to finish.
</content>
</entry>
<entry>
<title>Temporarily turn net.isr.enable back off again until patches to</title>
<updated>2003-10-01T22:15:16Z</updated>
<author>
<name>Robert Watson</name>
<email>rwatson@FreeBSD.org</email>
</author>
<published>2003-10-01T22:15:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=3164565d3982edadc6ba9b9c008231a95064575b'/>
<id>urn:sha1:3164565d3982edadc6ba9b9c008231a95064575b</id>
<content type='text'>
correct potential nits in packet ordering are resolved.
</content>
</entry>
</feed>
