diff options
author | Jesper Dangaard Brouer <brouer@redhat.com> | 2017-08-24 12:33:18 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-08-24 11:59:37 -0700 |
commit | a873585587205750e7accfb2c93c29239ffa6e09 (patch) | |
tree | 3896a9d8cd9c2fb67d06e549e8ff0614beebfbe5 /net/core | |
parent | 2886447dc5add28226451c163cd9ac1d1b3bf59a (diff) | |
download | talos-obmc-linux-a873585587205750e7accfb2c93c29239ffa6e09.tar.gz talos-obmc-linux-a873585587205750e7accfb2c93c29239ffa6e09.zip |
xdp: remove net_device names from xdp_redirect tracepoint
There is too much overhead in the current trace_xdp_redirect
tracepoint as it does strcpy and strlen on the net_device names.
Besides, exposing the ifindex/index is actually the information that
is needed in the tracepoint to diagnose issues. When a lookup fails
(either ifindex or devmap index) then there is a need for saying which
to_index that have issues.
V2: Adjust args to be aligned with trace_xdp_exception.
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/filter.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/core/filter.c b/net/core/filter.c index a04680331033..4bcd6baa80c9 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -2524,7 +2524,7 @@ static int xdp_do_redirect_map(struct net_device *dev, struct xdp_buff *xdp, if (likely(!err)) ri->map_to_flush = map; out: - trace_xdp_redirect(dev, fwd, xdp_prog, XDP_REDIRECT, err); + trace_xdp_redirect(dev, xdp_prog, XDP_REDIRECT, index, err); return err; } @@ -2548,7 +2548,7 @@ int xdp_do_redirect(struct net_device *dev, struct xdp_buff *xdp, err = __bpf_tx_xdp(fwd, NULL, xdp, 0); out: - trace_xdp_redirect(dev, fwd, xdp_prog, XDP_REDIRECT, err); + trace_xdp_redirect(dev, xdp_prog, XDP_REDIRECT, index, err); return err; } EXPORT_SYMBOL_GPL(xdp_do_redirect); @@ -2582,7 +2582,7 @@ int xdp_do_generic_redirect(struct net_device *dev, struct sk_buff *skb, skb->dev = fwd; out: - trace_xdp_redirect(dev, fwd, xdp_prog, XDP_REDIRECT, err); + trace_xdp_redirect(dev, xdp_prog, XDP_REDIRECT, index, err); return err; } EXPORT_SYMBOL_GPL(xdp_do_generic_redirect); |