<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/core/net_namespace.c, branch linux-2.6.37.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2010-10-25T21:18:27Z</updated>
<entry>
<title>net_ns: add __rcu annotations</title>
<updated>2010-10-25T21:18:27Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2010-10-25T03:20:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1c87733d0682547050ccccb400cdac425fa43b39'/>
<id>urn:sha1:1c87733d0682547050ccccb400cdac425fa43b39</id>
<content type='text'>
add __rcu annotation to (struct net)-&gt;gen, and use
rcu_dereference_protected() in net_assign_generic()

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: disallow to use net_assign_generic externally</title>
<updated>2010-04-27T22:49:02Z</updated>
<author>
<name>Jiri Pirko</name>
</author>
<published>2010-04-23T01:40:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=05fceb4ad7e8bf809a2a97061d6273d27d1a8449'/>
<id>urn:sha1:05fceb4ad7e8bf809a2a97061d6273d27d1a8449</id>
<content type='text'>
Now there's no need to use this fuction directly because it's handled by
register_pernet_device. So to make this simple and easy to understand,
make this static to do not tempt potentional users.

Signed-off-by: Jiri Pirko &lt;jpirko@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>netns: rename unregister_pernet_subsys parameter</title>
<updated>2010-04-25T07:49:56Z</updated>
<author>
<name>Jiri Pirko</name>
</author>
<published>2010-04-25T07:49:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b3c981d2bbbe889125169bd0bb482e64d3c028a1'/>
<id>urn:sha1:b3c981d2bbbe889125169bd0bb482e64d3c028a1</id>
<content type='text'>
Stay consistent with other functions and with comment also and name
pernet_operations parameter properly.

Signed-off-by: Jiri Pirko &lt;jpirko@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>netns: Add an explicit rcu_barrier to unregister_pernet_{device|subsys}</title>
<updated>2009-12-03T20:22:03Z</updated>
<author>
<name>Eric W. Biederman</name>
</author>
<published>2009-12-03T02:29:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3a765edadb28cc736d185f67d1ba6bedcc85f4b9'/>
<id>urn:sha1:3a765edadb28cc736d185f67d1ba6bedcc85f4b9</id>
<content type='text'>
This allows namespace exit methods to batch work that comes requires an
rcu barrier using call_rcu without having to treat the
unregister_pernet_operations cases specially.

Signed-off-by: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: Move network device exit batching</title>
<updated>2009-12-03T20:22:02Z</updated>
<author>
<name>Eric W. Biederman</name>
</author>
<published>2009-12-03T02:29:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=04dc7f6be3a7b308f8545bb45772c9fb75f71aca'/>
<id>urn:sha1:04dc7f6be3a7b308f8545bb45772c9fb75f71aca</id>
<content type='text'>
Move network device exit batching from a special case in
net_namespace.c to using common mechanisms in dev.c

Signed-off-by: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: Add support for batching network namespace cleanups</title>
<updated>2009-12-03T20:22:01Z</updated>
<author>
<name>Eric W. Biederman</name>
</author>
<published>2009-12-03T02:29:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=72ad937abd0a43b7cf2c557ba1f2ec75e608c516'/>
<id>urn:sha1:72ad937abd0a43b7cf2c557ba1f2ec75e608c516</id>
<content type='text'>
- Add exit_list to struct net to support building lists of network
  namespaces to cleanup.

- Add exit_batch to pernet_operations to allow running operations only
  once during a network namespace exit.  Instead of once per network
  namespace.

- Factor opt ops_exit_list and ops_exit_free so the logic with cleanup
  up a network namespace does not need to be duplicated.

Signed-off-by: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: Automatically allocate per namespace data.</title>
<updated>2009-12-02T00:15:51Z</updated>
<author>
<name>Eric W. Biederman</name>
</author>
<published>2009-11-29T22:25:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f875bae065334907796da12523f9df85c89f5712'/>
<id>urn:sha1:f875bae065334907796da12523f9df85c89f5712</id>
<content type='text'>
To get the full benefit of batched network namespace cleanup netowrk
device deletion needs to be performed by the generic code.  When
using register_pernet_gen_device and freeing the data in exit_net
it is impossible to delay allocation until after exit_net has called
as the device uninit methods are no longer safe.

To correct this, and to simplify working with per network namespace data
I have moved allocation and deletion of per network namespace data into
the network namespace core.  The core now frees the data only after
all of the network namespace exit routines have run.

Now it is only required to set the new fields .id and .size
in the pernet_operations structure if you want network namespace
data to be managed for you automatically.

This makes the current register_pernet_gen_device and
register_pernet_gen_subsys routines unnecessary.  For the moment
I have left them as compatibility wrappers in net_namespace.h
They will be removed once all of the users have been updated.

Signed-off-by: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: Batch network namespace destruction.</title>
<updated>2009-12-02T00:15:51Z</updated>
<author>
<name>Eric W. Biederman</name>
</author>
<published>2009-11-29T22:25:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2b035b39970740722598f7a9d548835f9bdd730f'/>
<id>urn:sha1:2b035b39970740722598f7a9d548835f9bdd730f</id>
<content type='text'>
It is fairly common to kill several network namespaces at once.  Either
because they are nested one inside the other or because they are cooperating
in multiple machine networking experiments.  As the network stack control logic
does not parallelize easily batch up multiple network namespaces existing
together.

To get the full benefit of batching the virtual network devices to be
removed must be all removed in one batch.  For that purpose I have added
a loop after the last network device operations have run that batches
up all remaining network devices and deletes them.

An extra benefit is that the reorganization slightly shrinks the size
of the per network namespace data structures replaceing a work_struct
with a list_head.

In a trivial test with 4K namespaces this change reduced the cost of
a destroying 4K namespaces from 7+ minutes (at 12% cpu) to 44 seconds
(at 60% cpu).  The bulk of that 44s was spent in inet_twsk_purge.

Signed-off-by: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: use net_eq to compare nets</title>
<updated>2009-11-25T23:14:13Z</updated>
<author>
<name>Octavian Purdila</name>
</author>
<published>2009-11-25T23:14:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=09ad9bc752519cc167d0a573e1acf69b5c707c67'/>
<id>urn:sha1:09ad9bc752519cc167d0a573e1acf69b5c707c67</id>
<content type='text'>
Generated with the following semantic patch

@@
struct net *n1;
struct net *n2;
@@
- n1 == n2
+ net_eq(n1, n2)

@@
struct net *n1;
struct net *n2;
@@
- n1 != n2
+ !net_eq(n1, n2)

applied over {include,net,drivers/net}.

Signed-off-by: Octavian Purdila &lt;opurdila@ixiacom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6</title>
<updated>2009-08-13T00:44:53Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2009-08-13T00:44:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=aa11d958d1a6572eda08214d7c6a735804fe48a5'/>
<id>urn:sha1:aa11d958d1a6572eda08214d7c6a735804fe48a5</id>
<content type='text'>
Conflicts:
	arch/microblaze/include/asm/socket.h
</content>
</entry>
</feed>
