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

Haiyang Zhang
2023-04-17T19:53:16Z

> -----Original Message-----
> From: Jakub Kicinski <kuba@kernel.org>
> Sent: Monday, April 17, 2023 1:52 PM
> To: Haiyang Zhang <haiyangz@microsoft.com>
> Cc: linux-hyperv@vger.kernel.org; netdev@vger.kernel.org; Dexuan Cui
> <decui@microsoft.com>; KY Srinivasan <kys@microsoft.com>; Paul Rosswurm
> <paulros@microsoft.com>; olaf@aepfle.de; vkuznets@redhat.com;
> davem@davemloft.net; wei.liu@kernel.org; edumazet@google.com;
> pabeni@redhat.com; leon@kernel.org; Long Li <longli@microsoft.com>;
> ssengar@linux.microsoft.com; linux-rdma@vger.kernel.org;
> daniel@iogearbox.net; john.fastabend@gmail.com; bpf@vger.kernel.org;
> ast@kernel.org; Ajay Sharma <sharmaajay@microsoft.com>;
> hawk@kernel.org; linux-kernel@vger.kernel.org
> 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