Re: [PATCH net-next 1/2] tcp: call tcp_drop() in tcp collapse

From: Yafang Shao
Date: Fri Jul 27 2018 - 23:35:15 EST


On Sat, Jul 28, 2018 at 11:06 AM, Eric Dumazet <edumazet@xxxxxxxxxx> wrote:
> On Fri, Jul 27, 2018 at 8:02 PM Yafang Shao <laoar.shao@xxxxxxxxx> wrote:
>>
>> When this SKB is dropped, we should add the counter sk_drops.
>> That could help us better tracking this behavior.
>>
>> Signed-off-by: Yafang Shao <laoar.shao@xxxxxxxxx>
>> ---
>> net/ipv4/tcp_input.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
>> index d51fa35..90f83eb 100644
>> --- a/net/ipv4/tcp_input.c
>> +++ b/net/ipv4/tcp_input.c
>> @@ -4802,7 +4802,7 @@ static struct sk_buff *tcp_collapse_one(struct sock *sk, struct sk_buff *skb,
>> else
>> rb_erase(&skb->rbnode, root);
>>
>> - __kfree_skb(skb);
>> + tcp_drop(sk, skb);
>
>
> Absolutely not.
>
> We do not drop the packet, we have simply lowered the memory overhead.

So what about LINUX_MIB_TCPOFOMERGE ?
Regarding LINUX_MIB_TCPOFOMERGE, a skb is already covered by another
skb, is that dropping the packet or simply lowering the memory
overhead ?

Thanks
Yafang