Message ID | 20190116165028.105490-1-posk@google.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [net-next] net: add a route cache full diagnostic message | expand |
From: Peter Oskolkov <posk@google.com> Date: Wed, 16 Jan 2019 08:50:28 -0800 > In some testing scenarios, dst/route cache can fill up so quickly > that even an explicit GC call occasionally fails to clean it up. This leads > to sporadically failing calls to dst_alloc and "network unreachable" errors > to the user, which is confusing. > > This patch adds a diagnostic message to make the cause of the failure > easier to determine. > > Signed-off-by: Peter Oskolkov <posk@google.com> Applied.
diff --git a/net/core/dst.c b/net/core/dst.c index 81ccf20e2826..a263309df115 100644 --- a/net/core/dst.c +++ b/net/core/dst.c @@ -98,8 +98,12 @@ void *dst_alloc(struct dst_ops *ops, struct net_device *dev, struct dst_entry *dst; if (ops->gc && dst_entries_get_fast(ops) > ops->gc_thresh) { - if (ops->gc(ops)) + if (ops->gc(ops)) { + printk_ratelimited(KERN_NOTICE "Route cache is full: " + "consider increasing sysctl " + "net.ipv[4|6].route.max_size.\n"); return NULL; + } } dst = kmem_cache_alloc(ops->kmem_cachep, GFP_ATOMIC);
In some testing scenarios, dst/route cache can fill up so quickly that even an explicit GC call occasionally fails to clean it up. This leads to sporadically failing calls to dst_alloc and "network unreachable" errors to the user, which is confusing. This patch adds a diagnostic message to make the cause of the failure easier to determine. Signed-off-by: Peter Oskolkov <posk@google.com> --- net/core/dst.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) --