Re: [PATCH V3,net-next, 3/4] net: mana: Enable RX path to handle various MTU sizes

From: Jakub Kicinski
Date: Mon Apr 17 2023 - 13:52:37 EST


On Sat, 15 Apr 2023 14:25:29 +0000 Haiyang Zhang wrote:
> > Allocating frag larger than a page is not safe.
>
> I saw other drivers doing this - use napi_alloc_frag for size bigger than a page.
> And it returns compound page. Why it's not safe? Should we use other allocator
> when need compound pages?

I believe so. There was a thread about this within the last year.
Someone was trying to fix the page frag allocator to not fall back
to order 0 pages in case of failure if requested size is > PAGE_SIZE.
But there was push back and folks were saying that it's simply not
a case supported by the frag allocator. 🤷️

> > Frag allocator falls back to allocating single pages, doesn't it?
>
> Actually I checked it. Compound page is still returned for size smaller than PAGE_SIZE,
> so I used single page allocation for that.

https://elixir.bootlin.com/linux/v6.3-rc6/source/mm/page_alloc.c#L5723

Jumbo frames should really be supported as scatter transfers,
if possible.