Re: [Intel-wired-lan] [PATCH iwl-next 01/16] libeth: convert to netmem
From: Alexander Lobakin
Date: Thu Apr 17 2025 - 08:29:51 EST
From: Loktionov, Aleksandr <aleksandr.loktionov@xxxxxxxxx>
Date: Wed, 16 Apr 2025 08:54:39 +0200
>
>
>> -----Original Message-----
>> From: Intel-wired-lan <intel-wired-lan-bounces@xxxxxxxxxx> On Behalf Of
>> Alexander Lobakin
>> Sent: Tuesday, April 15, 2025 7:28 PM
>> To: intel-wired-lan@xxxxxxxxxxxxxxxx
>> Cc: Lobakin, Aleksander <aleksander.lobakin@xxxxxxxxx>; Kubiak, Michal
>> <michal.kubiak@xxxxxxxxx>; Fijalkowski, Maciej
>> <maciej.fijalkowski@xxxxxxxxx>; Nguyen, Anthony L
>> <anthony.l.nguyen@xxxxxxxxx>; Kitszel, Przemyslaw
>> <przemyslaw.kitszel@xxxxxxxxx>; Andrew Lunn <andrew+netdev@xxxxxxx>;
>> David S. Miller <davem@xxxxxxxxxxxxx>; Dumazet, Eric
>> <edumazet@xxxxxxxxxx>; Jakub Kicinski <kuba@xxxxxxxxxx>; Paolo Abeni
>> <pabeni@xxxxxxxxxx>; Alexei Starovoitov <ast@xxxxxxxxxx>; Daniel
>> Borkmann <daniel@xxxxxxxxxxxxx>; Jesper Dangaard Brouer
>> <hawk@xxxxxxxxxx>; John Fastabend <john.fastabend@xxxxxxxxx>; Simon
>> Horman <horms@xxxxxxxxxx>; bpf@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx;
>> linux-kernel@xxxxxxxxxxxxxxx; Mina Almasry <almasrymina@xxxxxxxxxx>
>> Subject: [Intel-wired-lan] [PATCH iwl-next 01/16] libeth: convert to netmem
[...]
>> + memcpy(dst, src, LARGEST_ALIGN(copy));
> Can you avoid 'unstable' API __netmem_to_page() usage? For example:
>
> - dst = page_address(hdr->page) + hdr->offset + hdr->page->pp->p.offset;
> - src = page_address(buf->page) + buf->offset + buf->page->pp->p.offset;
> - memcpy(dst, src, LARGEST_ALIGN(copy));
> + dst = netmem_address(hdr->netmem) + hdr->offset;
> + src = netmem_address(buf->netmem) + buf->offset;
> + memcpy(dst, src, LARGEST_ALIGN(copy));
Those underscored versions were introduced by me to avoid redundant
overhead when it's known the buffer is backed by a page -- for cases
like this one, so your propo makes no sense to me.
>
>> buf->offset += copy;
>>
>> return copy;
Thanks,
Olek