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

From: Haiyang Zhang
Date: Mon Apr 17 2023 - 15:53:17 EST




> -----Original Message-----
> From: Jakub Kicinski <kuba@xxxxxxxxxx>
> Sent: Monday, April 17, 2023 1:52 PM
> To: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>
> Cc: linux-hyperv@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx; Dexuan Cui
> <decui@xxxxxxxxxxxxx>; KY Srinivasan <kys@xxxxxxxxxxxxx>; Paul Rosswurm
> <paulros@xxxxxxxxxxxxx>; olaf@xxxxxxxxx; vkuznets@xxxxxxxxxx;
> davem@xxxxxxxxxxxxx; wei.liu@xxxxxxxxxx; edumazet@xxxxxxxxxx;
> pabeni@xxxxxxxxxx; leon@xxxxxxxxxx; Long Li <longli@xxxxxxxxxxxxx>;
> ssengar@xxxxxxxxxxxxxxxxxxx; linux-rdma@xxxxxxxxxxxxxxx;
> daniel@xxxxxxxxxxxxx; john.fastabend@xxxxxxxxx; bpf@xxxxxxxxxxxxxxx;
> ast@xxxxxxxxxx; Ajay Sharma <sharmaajay@xxxxxxxxxxxxx>;
> hawk@xxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH V3,net-next, 3/4] net: mana: Enable RX path to handle
> various MTU sizes
>
> 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. 🤷️

Thanks, I will use other allocator for compound pages.

>
> > > 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://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Felixir
> .bootlin.com%2Flinux%2Fv6.3-
> rc6%2Fsource%2Fmm%2Fpage_alloc.c%23L5723&data=05%7C01%7Chaiyan
> gz%40microsoft.com%7C00ca9f15ae314a4aa2ee08db3f6c8699%7C72f988
> bf86f141af91ab2d7cd011db47%7C1%7C0%7C638173507608724670%7C
> Unknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJB
> TiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=87QqFbWrxU
> BMtqYpC397nlQxOJfU7lkt2%2FKAOGUjzjw%3D&reserved=0
>
> Jumbo frames should really be supported as scatter transfers,
> if possible.

Our HW has much bigger overhead for scatter transfer on RX, so I use compound
Page.

Thanks,
- Haiyang