netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ipv6: don't count addrconf generated routes against gc limit
@ 2013-12-06 17:25 Hannes Frederic Sowa
  2013-12-06 21:21 ` David Miller
  0 siblings, 1 reply; 4+ messages in thread
From: Hannes Frederic Sowa @ 2013-12-06 17:25 UTC (permalink / raw)
  To: netdev; +Cc: brett.ciphery

Brett Ciphery reported that new ipv6 addresses failed to get installed
because the addrconf generated dsts where counted against the dst gc
limit. We don't need to count those routes like we currently don't count
administratively added routes.

Because the max_addresses check enforces a limit on unbounded address
generation first in case someone plays with router advertisments, we
are still safe here.

Reported-by: Brett Ciphery <brett.ciphery@windriver.com>
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
---
 net/ipv6/route.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index ddb9d41..11fdf1f 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -2166,7 +2166,8 @@ struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev,
 				    bool anycast)
 {
 	struct net *net = dev_net(idev->dev);
-	struct rt6_info *rt = ip6_dst_alloc(net, net->loopback_dev, 0, NULL);
+	struct rt6_info *rt = ip6_dst_alloc(net, net->loopback_dev,
+					    DST_NOCOUNT, NULL);
 
 	if (!rt) {
 		net_warn_ratelimited("Maximum number of routes reached, consider increasing route/max_size\n");
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] ipv6: don't count addrconf generated routes against gc limit
  2013-12-06 17:25 [PATCH] ipv6: don't count addrconf generated routes against gc limit Hannes Frederic Sowa
@ 2013-12-06 21:21 ` David Miller
  2013-12-07  2:33   ` [PATCH v2] " Hannes Frederic Sowa
  0 siblings, 1 reply; 4+ messages in thread
From: David Miller @ 2013-12-06 21:21 UTC (permalink / raw)
  To: hannes; +Cc: netdev, brett.ciphery

From: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date: Fri, 6 Dec 2013 18:25:56 +0100

> @@ -2166,7 +2166,8 @@ struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev,
>  				    bool anycast)
>  {
>  	struct net *net = dev_net(idev->dev);
> -	struct rt6_info *rt = ip6_dst_alloc(net, net->loopback_dev, 0, NULL);
> +	struct rt6_info *rt = ip6_dst_alloc(net, net->loopback_dev,
> +					    DST_NOCOUNT, NULL);
>  
>  	if (!rt) {
>  		net_warn_ratelimited("Maximum number of routes reached, consider increasing route/max_size\n");

So basically, we only want to count routes that will have RTF_CACHE
set on them.

This warning in the net_warn_ratelimited() is no longer relevant, only
hard memory allocation failures can result in this !rt condition.  So
please respin this patch with that warning removed.

Thanks.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2] ipv6: don't count addrconf generated routes against gc limit
  2013-12-06 21:21 ` David Miller
@ 2013-12-07  2:33   ` Hannes Frederic Sowa
  2013-12-10  2:01     ` David Miller
  0 siblings, 1 reply; 4+ messages in thread
From: Hannes Frederic Sowa @ 2013-12-07  2:33 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, brett.ciphery

Brett Ciphery reported that new ipv6 addresses failed to get installed
because the addrconf generated dsts where counted against the dst gc
limit. We don't need to count those routes like we currently don't count
administratively added routes.

Because the max_addresses check enforces a limit on unbounded address
generation first in case someone plays with router advertisments, we
are still safe here.

Reported-by: Brett Ciphery <brett.ciphery@windriver.com>
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
---

On Fri, Dec 06, 2013 at 04:21:24PM -0500, David Miller wrote:
> So basically, we only want to count routes that will have RTF_CACHE
> set on them.

Exactly.

> This warning in the net_warn_ratelimited() is no longer relevant, only
> hard memory allocation failures can result in this !rt condition.  So
> please respin this patch with that warning removed.

Sorry, I spinned the patch too fast after testing.

 net/ipv6/route.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index ddb9d41..a0a48ac 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -2166,12 +2166,10 @@ struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev,
 				    bool anycast)
 {
 	struct net *net = dev_net(idev->dev);
-	struct rt6_info *rt = ip6_dst_alloc(net, net->loopback_dev, 0, NULL);
-
-	if (!rt) {
-		net_warn_ratelimited("Maximum number of routes reached, consider increasing route/max_size\n");
+	struct rt6_info *rt = ip6_dst_alloc(net, net->loopback_dev,
+					    DST_NOCOUNT, NULL);
+	if (!rt)
 		return ERR_PTR(-ENOMEM);
-	}
 
 	in6_dev_hold(idev);
 
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2] ipv6: don't count addrconf generated routes against gc limit
  2013-12-07  2:33   ` [PATCH v2] " Hannes Frederic Sowa
@ 2013-12-10  2:01     ` David Miller
  0 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2013-12-10  2:01 UTC (permalink / raw)
  To: hannes; +Cc: netdev, brett.ciphery

From: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date: Sat, 7 Dec 2013 03:33:45 +0100

> Brett Ciphery reported that new ipv6 addresses failed to get installed
> because the addrconf generated dsts where counted against the dst gc
> limit. We don't need to count those routes like we currently don't count
> administratively added routes.
> 
> Because the max_addresses check enforces a limit on unbounded address
> generation first in case someone plays with router advertisments, we
> are still safe here.
> 
> Reported-by: Brett Ciphery <brett.ciphery@windriver.com>
> Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>

Applied and queued up for -stable, thanks!

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-12-10  2:01 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-06 17:25 [PATCH] ipv6: don't count addrconf generated routes against gc limit Hannes Frederic Sowa
2013-12-06 21:21 ` David Miller
2013-12-07  2:33   ` [PATCH v2] " Hannes Frederic Sowa
2013-12-10  2:01     ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).