RE: [PATCH net v2 1/2] gianfar: Replace skb_realloc_headroom with skb_cow_head for PTP

Claudiu Manoil
2020-11-04T16:45:30Z

>-----Original Message-----
>From: Eric Dumazet <eric.dumazet@gmail.com>
>Sent: Tuesday, November 3, 2020 8:16 PM
>To: Vladimir Oltean <olteanv@gmail.com>; Claudiu Manoil
><claudiu.manoil@nxp.com>
>Cc: Jakub Kicinski <kuba@kernel.org>; netdev@vger.kernel.org; David S .
>Miller <davem@davemloft.net>; james.jurack@ametek.com
>Subject: Re: [PATCH net v2 1/2] gianfar: Replace skb_realloc_headroom with
>skb_cow_head for PTP
>
>
>
>On 11/3/20 6:49 PM, Vladimir Oltean wrote:
>> On Tue, Nov 03, 2020 at 05:41:36PM +0000, Claudiu Manoil wrote:
>>> This is the patch:
>>>
[...]
>>>
>>> are you sure you have it applied?
>>
>> Actually? No, I didn't have it applied... I had thought that net had
>> been already merged into net-next, for some reason :-/
>> Let me run the test for a few more tens of minutes with the patch
>> applied.
>>
>
>I find strange that the local TCP traffic can end up calling
>skb_realloc_headromm() in the old kernels.
>
>Normally TCP reserves a lot of bytes for headers.
>
>#define MAX_TCP_HEADER L1_CACHE_ALIGN(128 + MAX_HEADER)
>
>It should accommodate the gianfar needs for additional 24 bytes,
>even if LL_MAX_HEADER is 32 in your kernel build perhaps.
>

Hi,
The PTP packets need extra headroom and get reallocated, not TCP packets.
However if TCP streams are sent concurrently with PTP packets, and
skb_realloc_headroom() is used to reallocate PTP packets, we get these crashes.
If skb_cow_head() is used instead there's no crash.