net: add explicit logging and stat for neighbour table overflow
authorRick Jones <rick.jones2@hp.com>
Fri, 7 Aug 2015 18:10:37 +0000 (11:10 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 10 Aug 2015 20:46:21 +0000 (13:46 -0700)
commitfb811395cd5a71b9e94a068f524a6f4a21b67bdb
tree0ad6d565998e141581697b0e83cda9e13d0fab94
parenta7854037da006a7472c48773e3190db55217ec9b
net: add explicit logging and stat for neighbour table overflow

Add an explicit neighbour table overflow message (ratelimited) and
statistic to make diagnosing neighbour table overflows tractable in
the wild.

Diagnosing a neighbour table overflow can be quite difficult in the wild
because there is no explicit dmesg logged.  Callers to neighbour code
seem to use net_dbg_ratelimit when the neighbour call fails which means
the "base message" is not emitted and the callback suppressed messages
from the ratelimiting can end-up juxtaposed with unrelated messages.
Further, a forced garbage collection will increment a stat on each call
whether it was successful in freeing-up a table entry or not, so that
statistic is only a hint.  So, add a net_info_ratelimited message and
explicit statistic to the neighbour code.

Signed-off-by: Rick Jones <rick.jones2@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/neighbour.h
include/uapi/linux/neighbour.h
net/core/neighbour.c