<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/core/dst.c, branch linux-3.6.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.6.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.6.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-08-08T23:00:28Z</updated>
<entry>
<title>net: force dst_default_metrics to const section</title>
<updated>2012-08-08T23:00:28Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2012-08-07T10:55:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a37e6e344910a43b9ebc2bbf29a029f5ea942598'/>
<id>urn:sha1:a37e6e344910a43b9ebc2bbf29a029f5ea942598</id>
<content type='text'>
While investigating on network performance problems, I found this little
gem :

$ nm -v vmlinux | grep -1 dst_default_metrics
ffffffff82736540 b busy.46605
ffffffff82736560 B dst_default_metrics
ffffffff82736598 b dst_busy_list

Apparently, declaring a const array without initializer put it in
(writeable) bss section, in middle of possibly often dirtied cache
lines.

Since we really want dst_default_metrics be const to avoid any possible
false sharing and catch any buggy writes, I force a null initializer.

ffffffff818a4c20 R dst_default_metrics

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: Document dst-&gt;obsolete better.</title>
<updated>2012-07-20T20:31:21Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2012-07-19T19:31:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f5b0a8743601a4477419171f5046bd07d1c080a0'/>
<id>urn:sha1:f5b0a8743601a4477419171f5046bd07d1c080a0</id>
<content type='text'>
Add a big comment explaining how the field works, and use defines
instead of magic constants for the values assigned to it.

Suggested by Joe Perches.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: Kill dst-&gt;_neighbour, accessors, and final uses.</title>
<updated>2012-07-05T09:42:00Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2012-07-03T05:58:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=36bdbcae2fa2a6dfa99344d4190fcea0aa7b7c25'/>
<id>urn:sha1:36bdbcae2fa2a6dfa99344d4190fcea0aa7b7c25</id>
<content type='text'>
No longer used.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: Do delayed neigh confirmation.</title>
<updated>2012-07-05T08:03:06Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2012-07-02T09:21:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5110effee8fde2edfacac9cd12a9960ab2dc39ea'/>
<id>urn:sha1:5110effee8fde2edfacac9cd12a9960ab2dc39ea</id>
<content type='text'>
When a dst_confirm() happens, mark the confirmation as pending in the
dst.  Then on the next packet out, when we have the neigh in-hand, do
the update.

This removes the dependency in dst_confirm() of dst's having an
attached neigh.

While we're here, remove the explicit 'dst' NULL check, all except 2
or 3 call sites ensure it's not NULL.  So just fix those cases up.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: Rename dst_get_neighbour{, _raw} to dst_get_neighbour_noref{, _raw}.</title>
<updated>2011-12-05T20:20:19Z</updated>
<author>
<name>David Miller</name>
</author>
<published>2011-12-02T16:52:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2721745501a26d0dc3b88c0d2f3aa11471891388'/>
<id>urn:sha1:2721745501a26d0dc3b88c0d2f3aa11471891388</id>
<content type='text'>
To reflect the fact that a refrence is not obtained to the
resulting neighbour entry.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Acked-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
</entry>
<entry>
<title>net: fix potential neighbour race in dst_ifdown()</title>
<updated>2011-08-10T04:47:14Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2011-08-08T20:56:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9de79c127cccecb11ae6a21ab1499e87aa222880'/>
<id>urn:sha1:9de79c127cccecb11ae6a21ab1499e87aa222880</id>
<content type='text'>
Followup of commit f2c31e32b378a (fix NULL dereferences in
check_peer_redir()).

We need to make sure dst neighbour doesnt change in dst_ifdown().

Fix some sparse errors.

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: Abstract dst-&gt;neighbour accesses behind helpers.</title>
<updated>2011-07-18T06:11:35Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2011-07-18T06:09:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=69cce1d1404968f78b177a0314f5822d5afdbbfb'/>
<id>urn:sha1:69cce1d1404968f78b177a0314f5822d5afdbbfb</id>
<content type='text'>
dst_{get,set}_neighbour()

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: Embed hh_cache inside of struct neighbour.</title>
<updated>2011-07-14T14:53:20Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2011-07-14T14:53:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f6b72b6217f8c24f2a54988e58af858b4e66024d'/>
<id>urn:sha1:f6b72b6217f8c24f2a54988e58af858b4e66024d</id>
<content type='text'>
Now that there is a one-to-one correspondance between neighbour
and hh_cache entries, we no longer need:

1) dynamic allocation
2) attachment to dst-&gt;hh
3) refcounting

Initialization of the hh_cache entry is indicated by hh_len
being non-zero, and such initialization is always done with
the neighbour's lock held as a writer.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: Don't put artificial limit on routing table size.</title>
<updated>2011-07-02T00:30:43Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2011-06-24T22:25:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=957c665f37007de93ccbe45902a23143724170d0'/>
<id>urn:sha1:957c665f37007de93ccbe45902a23143724170d0</id>
<content type='text'>
IPV6, unlike IPV4, doesn't have a routing cache.

Routing table entries, as well as clones made in response
to route lookup requests, all live in the same table.  And
all of these things are together collected in the destination
cache table for ipv6.

This means that routing table entries count against the garbage
collection limits, even though such entries cannot ever be reclaimed
and are added explicitly by the administrator (rather than being
created in response to lookups).

Therefore it makes no sense to count ipv6 routing table entries
against the GC limits.

Add a DST_NOCOUNT destination cache entry flag, and skip the counting
if it is set.  Use this flag bit in ipv6 when adding routing table
entries.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: fix __dst_destroy_metrics_generic()</title>
<updated>2011-05-24T17:29:50Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2011-05-24T17:29:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b30c516f875004f025f4d10147bde28c5e98466b'/>
<id>urn:sha1:b30c516f875004f025f4d10147bde28c5e98466b</id>
<content type='text'>
dst_default_metrics is readonly, we dont want to kfree() it later.

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
