<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/ipv6/route.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-12-16T20:28:13Z</updated>
<entry>
<title>ipv6: delete expired route in ip6_pmtu_deliver</title>
<updated>2010-12-16T20:28:13Z</updated>
<author>
<name>Andrey Vagin</name>
</author>
<published>2010-12-11T15:20:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d3052b557a1c94c21f50465702fa886753ce6b43'/>
<id>urn:sha1:d3052b557a1c94c21f50465702fa886753ce6b43</id>
<content type='text'>
The first big packets sent to a "low-MTU" client correctly
triggers the creation of a temporary route containing the reduced MTU.

But after the temporary route has expired, new ICMP6 "packet too big"
will be sent, rt6_pmtu_discovery will find the previous EXPIRED route
check that its mtu isn't bigger then in icmp packet and do nothing
before the temporary route will not deleted by gc.

I make the simple experiment:
while :; do
    time ( dd if=/dev/zero bs=10K count=1 | ssh hostname dd of=/dev/null ) || break;
done

The "time" reports real 0m0.197s if a temporary route isn't expired, but
it reports real 0m52.837s (!!!!) immediately after a temporare route has
expired.

Signed-off-by: Andrey Vagin &lt;avagin@openvz.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: Warn users if maximum number of routes is reached.</title>
<updated>2010-11-12T22:03:24Z</updated>
<author>
<name>Ben Greear</name>
</author>
<published>2010-11-08T12:33:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=403856532734317d25ec86ab1e75b8133db7acc6'/>
<id>urn:sha1:403856532734317d25ec86ab1e75b8133db7acc6</id>
<content type='text'>
This gives users at least some clue as to what the problem
might be and how to go about fixing it.

Signed-off-by: Ben Greear &lt;greearb@candelatech.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net dst: fix percpu_counter list corruption and poison overwritten</title>
<updated>2010-11-04T01:50:07Z</updated>
<author>
<name>Xiaotian Feng</name>
</author>
<published>2010-11-02T16:11:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=41bb78b4b9adb21cf2c395b6b880aaae99c788b7'/>
<id>urn:sha1:41bb78b4b9adb21cf2c395b6b880aaae99c788b7</id>
<content type='text'>
There're some percpu_counter list corruption and poison overwritten warnings
in recent kernel, which is resulted by fc66f95c.

commit fc66f95c switches to use percpu_counter, in ip6_route_net_init, kernel
init the percpu_counter for dst entries, but, the percpu_counter is never destroyed
in ip6_route_net_exit. So if the related data is freed by kernel, the freed percpu_counter
is still on the list, then if we insert/remove other percpu_counter, list corruption
resulted. Also, if the insert/remove option modifies the -&gt;prev,-&gt;next pointer of
the freed value, the poison overwritten is resulted then.

With the following patch, the percpu_counter list corruption and poison overwritten
warnings disappeared.

Signed-off-by: Xiaotian Feng &lt;dfeng@redhat.com&gt;
Cc: "David S. Miller" &lt;davem@davemloft.net&gt;
Cc: Alexey Kuznetsov &lt;kuznet@ms2.inr.ac.ru&gt;
Cc: "Pekka Savola (ipv6)" &lt;pekkas@netcore.fi&gt;
Cc: James Morris &lt;jmorris@namei.org&gt;
Cc: Hideaki YOSHIFUJI &lt;yoshfuji@linux-ipv6.org&gt;
Cc: Patrick McHardy &lt;kaber@trash.net&gt;
Acked-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 dst: use a percpu_counter to track entries</title>
<updated>2010-10-11T20:06:53Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2010-10-08T06:37:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fc66f95c68b6d4535a0ea2ea15d5cf626e310956'/>
<id>urn:sha1:fc66f95c68b6d4535a0ea2ea15d5cf626e310956</id>
<content type='text'>
struct dst_ops tracks number of allocated dst in an atomic_t field,
subject to high cache line contention in stress workload.

Switch to a percpu_counter, to reduce number of time we need to dirty a
central location. Place it on a separate cache line to avoid dirtying
read only fields.

Stress test :

(Sending 160.000.000 UDP frames,
IP route cache disabled, dual E5540 @2.53GHz,
32bit kernel, FIB_TRIE, SLUB/NUMA)

Before:

real    0m51.179s
user    0m15.329s
sys     10m15.942s

After:

real	0m45.570s
user	0m15.525s
sys	9m56.669s

With a small reordering of struct neighbour fields, subject of a
following patch, (to separate refcnt from other read mostly fields)

real	0m41.841s
user	0m15.261s
sys	8m45.949s

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>Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6</title>
<updated>2010-10-04T18:56:38Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2010-10-04T18:56:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=21a180cda012e1f93e362dd4a9b0bfd3d8c92940'/>
<id>urn:sha1:21a180cda012e1f93e362dd4a9b0bfd3d8c92940</id>
<content type='text'>
Conflicts:
	net/ipv4/Kconfig
	net/ipv4/tcp_timer.c
</content>
</entry>
<entry>
<title>net: Fix IPv6 PMTU disc. w/ asymmetric routes</title>
<updated>2010-10-03T21:49:00Z</updated>
<author>
<name>Maciej Żenczykowski</name>
</author>
<published>2010-10-03T21:49:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ae878ae280bea286ff2b1e1cb6e609dd8cb4501d'/>
<id>urn:sha1:ae878ae280bea286ff2b1e1cb6e609dd8cb4501d</id>
<content type='text'>
Signed-off-by: Maciej Żenczykowski &lt;maze@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: Implement Any-IP support for IPv6.</title>
<updated>2010-09-29T06:38:15Z</updated>
<author>
<name>Maciej Żenczykowski</name>
</author>
<published>2010-09-27T00:07:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ab79ad14a2d51e95f0ac3cef7cd116a57089ba82'/>
<id>urn:sha1:ab79ad14a2d51e95f0ac3cef7cd116a57089ba82</id>
<content type='text'>
AnyIP is the capability to receive packets and establish incoming
connections on IPs we have not explicitly configured on the machine.

An example use case is to configure a machine to accept all incoming
traffic on eth0, and leave the policy of whether traffic for a given IP
should be delivered to the machine up to the load balancer.

Can be setup as follows:
  ip -6 rule from all iif eth0 lookup 200
  ip -6 route add local default dev lo table 200
(in this case for all IPv6 addresses)

Signed-off-by: Maciej Żenczykowski &lt;maze@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: add IPv6 to neighbour table overflow warning</title>
<updated>2010-09-27T22:02:18Z</updated>
<author>
<name>Ulrich Weber</name>
</author>
<published>2010-09-27T22:02:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7e1b33e5ea392dfc984fc63b76ca75acbf249dcd'/>
<id>urn:sha1:7e1b33e5ea392dfc984fc63b76ca75acbf249dcd</id>
<content type='text'>
IPv4 and IPv6 have separate neighbour tables, so
the warning messages should be distinguishable.

[ Add a suitable message prefix on the ipv4 side as well -DaveM ]

Signed-off-by: Ulrich Weber &lt;uweber@astaro.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: return operator cleanup</title>
<updated>2010-09-23T21:33:39Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2010-09-22T20:43:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a02cec2155fbea457eca8881870fd2de1a4c4c76'/>
<id>urn:sha1:a02cec2155fbea457eca8881870fd2de1a4c4c76</id>
<content type='text'>
Change "return (EXPR);" to "return EXPR;"

return is not a function, parentheses are not required.

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>ipv6: remove sysctl jiffies conversion on gc_elasticity and min_adv_mss</title>
<updated>2010-08-15T05:42:51Z</updated>
<author>
<name>Min Zhang</name>
</author>
<published>2010-08-15T05:42:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f3d3f616e35db2ceeb11564eafd50759bb5bca8a'/>
<id>urn:sha1:f3d3f616e35db2ceeb11564eafd50759bb5bca8a</id>
<content type='text'>
sysctl output ipv6 gc_elasticity and min_adv_mss as values divided by
HZ. However, they are not in unit of jiffies, since ip6_rt_min_advmss
refers to packet size and ip6_rt_fc_elasticity is used as scaler as in
expire&gt;&gt;ip6_rt_gc_elasticity, so replace the jiffies conversion
handler will regular handler for them.

This has impact on scripts that are currently working assuming the
divide by HZ, will yield different results with this patch in place.

Signed-off-by: Min Zhang &lt;mzhang@mvista.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
