Re: [PATCH net-next v3 2/4] net: tap: track dropped skb via kfree_skb_reason()

From: David Ahern
Date: Mon Feb 21 2022 - 22:24:18 EST


On 2/20/22 10:34 PM, Dongli Zhang wrote:
> The TAP can be used as vhost-net backend. E.g., the tap_handle_frame() is
> the interface to forward the skb from TAP to vhost-net/virtio-net.
>
> However, there are many "goto drop" in the TAP driver. Therefore, the
> kfree_skb_reason() is involved at each "goto drop" to help userspace
> ftrace/ebpf to track the reason for the loss of packets.
>
> The below reasons are introduced:
>
> - SKB_DROP_REASON_SKB_CSUM
> - SKB_DROP_REASON_SKB_COPY_DATA
> - SKB_DROP_REASON_SKB_GSO_SEG
> - SKB_DROP_REASON_DEV_HDR
> - SKB_DROP_REASON_FULL_RING
>
> Cc: Joao Martins <joao.m.martins@xxxxxxxxxx>
> Cc: Joe Jin <joe.jin@xxxxxxxxxx>
> Signed-off-by: Dongli Zhang <dongli.zhang@xxxxxxxxxx>
> ---
> Changed since v1:
> - revise the reason name
> Changed since v2:
> - declare drop_reason as type "enum skb_drop_reason"
> - handle the drop in skb_list_walk_safe() case
>
> drivers/net/tap.c | 35 +++++++++++++++++++++++++----------
> include/linux/skbuff.h | 9 +++++++++
> include/trace/events/skb.h | 5 +++++
> 3 files changed, 39 insertions(+), 10 deletions(-)
>

couple of places where the new reason should be in reverse xmas order;
logic wise:

Reviewed-by: David Ahern <dsahern@xxxxxxxxxx>