aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorNeil Horman <nhorman@tuxdriver.com>2009-05-21 03:36:08 -0400
committerDavid S. Miller <davem@davemloft.net>2009-05-21 19:50:21 -0400
commit4ea7e38696c7e798c47ebbecadfd392f23f814f9 (patch)
tree1e144d0c79fb667860ff7fa0ed203984e888ddab /include
parentd95ed9275edcb8995bda31005bb3f55e087626d7 (diff)
dropmon: add ability to detect when hardware dropsrxpackets
Patch to add the ability to detect drops in hardware interfaces via dropwatch. Adds a tracepoint to net_rx_action to signal everytime a napi instance is polled. The dropmon code then periodically checks to see if the rx_frames counter has changed, and if so, adds a drop notification to the netlink protocol, using the reserved all-0's vector to indicate the drop location was in hardware, rather than somewhere in the code. Signed-off-by: Neil Horman <nhorman@tuxdriver.com> include/linux/net_dropmon.h | 8 ++ include/trace/napi.h | 11 +++ net/core/dev.c | 5 + net/core/drop_monitor.c | 124 ++++++++++++++++++++++++++++++++++++++++++-- net/core/net-traces.c | 4 + net/core/netpoll.c | 2 6 files changed, 149 insertions(+), 5 deletions(-) Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/linux/net_dropmon.h8
-rw-r--r--include/trace/napi.h11
2 files changed, 19 insertions, 0 deletions
diff --git a/include/linux/net_dropmon.h b/include/linux/net_dropmon.h
index 0217fb81a630..e8a8b5c50ed0 100644
--- a/include/linux/net_dropmon.h
+++ b/include/linux/net_dropmon.h
@@ -2,12 +2,20 @@
2#define __NET_DROPMON_H 2#define __NET_DROPMON_H
3 3
4#include <linux/netlink.h> 4#include <linux/netlink.h>
5#include <linux/types.h>
5 6
6struct net_dm_drop_point { 7struct net_dm_drop_point {
7 __u8 pc[8]; 8 __u8 pc[8];
8 __u32 count; 9 __u32 count;
9}; 10};
10 11
12#define is_drop_point_hw(x) do {\
13 int ____i, ____j;\
14 for (____i = 0; ____i < 8; i ____i++)\
15 ____j |= x[____i];\
16 ____j;\
17} while (0)
18
11#define NET_DM_CFG_VERSION 0 19#define NET_DM_CFG_VERSION 0
12#define NET_DM_CFG_ALERT_COUNT 1 20#define NET_DM_CFG_ALERT_COUNT 1
13#define NET_DM_CFG_ALERT_DELAY 2 21#define NET_DM_CFG_ALERT_DELAY 2
diff --git a/include/trace/napi.h b/include/trace/napi.h
new file mode 100644
index 000000000000..a8989c4547e7
--- /dev/null
+++ b/include/trace/napi.h
@@ -0,0 +1,11 @@
1#ifndef _TRACE_NAPI_H_
2#define _TRACE_NAPI_H_
3
4#include <linux/netdevice.h>
5#include <linux/tracepoint.h>
6
7DECLARE_TRACE(napi_poll,
8 TP_PROTO(struct napi_struct *napi),
9 TP_ARGS(napi));
10
11#endif