Re: [PATCH v2 net-next 0/3] net: skb: introduce kfree_skb_with_reason() and use it for tcp and udp

From: Cong Wang
Date: Mon Jan 03 2022 - 20:48:07 EST


On Thu, Dec 30, 2021 at 05:32:37PM +0800, menglong8.dong@xxxxxxxxx wrote:
> From: Menglong Dong <imagedong@xxxxxxxxxxx>
>
> In this series patch, the interface kfree_skb_with_reason() is
> introduced(), which is used to collect skb drop reason, and pass
> it to 'kfree_skb' tracepoint. Therefor, 'drop_monitor' or eBPF is
> able to monitor abnormal skb with detail reason.
>

We already something close, __dev_kfree_skb_any(). Can't we unify
all of these?


> In fact, this series patches are out of the intelligence of David
> and Steve, I'm just a truck man :/
>

I think there was another discussion before yours, which I got involved
as well.

> Previous discussion is here:
>
> https://lore.kernel.org/netdev/20211118105752.1d46e990@xxxxxxxxxxxxxxxxxx/
> https://lore.kernel.org/netdev/67b36bd8-2477-88ac-83a0-35a1eeaf40c9@xxxxxxxxx/
>
> In the first patch, kfree_skb_with_reason() is introduced and
> the 'reason' field is added to 'kfree_skb' tracepoint. In the
> second patch, 'kfree_skb()' in replaced with 'kfree_skb_with_reason()'
> in tcp_v4_rcv(). In the third patch, 'kfree_skb_with_reason()' is
> used in __udp4_lib_rcv().
>

I don't follow all the discussions here, but IIRC it would be nice
if we can provide the SNMP stat code (for instance, TCP_MIB_CSUMERRORS) to
user-space, because those stats are already exposed to user-space, so
you don't have to invent new ones.

Thanks.