RE: [RFC PATCH v1 00/57] Boot-time page size selection for arm64

From: Michael Kelley
Date: Fri Dec 06 2024 - 08:10:28 EST


From: Ryan Roberts <ryan.roberts@xxxxxxx> Sent: Friday, December 6, 2024 2:26 AM
>
> On 06/12/2024 07:50, Petr Tesarik wrote:
> > On Thu, 5 Dec 2024 18:52:35 +0000
> > Michael Kelley <mhklinux@xxxxxxxxxxx> wrote:
> >
> >> From: Petr Tesarik <ptesarik@xxxxxxxx> Sent: Thursday, December 5, 2024 9:20 AM
> >>>
> >>> Hi Ryan,
> >>>
> >>> On Thu, 17 Oct 2024 13:32:43 +0100
> >>> Ryan Roberts <ryan.roberts@xxxxxxx> wrote:
> >>>
> >>>> On 17/10/2024 13:27, Petr Tesarik wrote:
> >>>>> On Mon, 14 Oct 2024 11:55:11 +0100
> >>>>> Ryan Roberts <ryan.roberts@xxxxxxx> wrote:
> >>>>>
> >>>>>> [...]
> >>>>>> The series is arranged as follows:
> >>>>>>
> >>>>>> - patch 1: Add macros required for converting non-arch code to support
> >>>>>> boot-time page size selection
> >>>>>> - patches 2-36: Remove PAGE_SIZE compile-time constant assumption from all
> >>>>>> non-arch code
> >>>>>
> >>>>> I have just tried to recompile the openSUSE kernel with these patches
> >>>>> applied, and I'm running into this:
> >>>>>
> >>>>> CC arch/arm64/hyperv/hv_core.o
> >>>>> In file included from ../arch/arm64/hyperv/hv_core.c:14:0:
> >>>>> ../include/linux/hyperv.h:158:5: error: variably modified 'reserved2' at file scope
> >>>>> u8 reserved2[PAGE_SIZE - 68];
> >>>>> ^~~~~~~~~
> >>>>>
> >>>>> It looks like one more place which needs a patch, right?
> >>>>
> >>>> As mentioned in the cover letter, so far I've only converted enough to get the
> >>>> defconfig *image* building (i.e. no modules). If you are compiling a different
> >>>> config or compiling the modules for defconfig, you will likely run into these
> >>>> types of issues.
> >>>>
> >>>> That said, I do have some patches to fix Hyper-V, which Michael Kelley was kind
> >>>> enough to send me.
> >>>>
> >>>> I understand that Suse might be able to help with wider performance testing - if
> >>>> that's the reason you are trying to compile, you could send me your config and
> >>>> I'll start working on fixing up other drivers?
> >>>
> >>> This project was de-prioritised for some time, but I have just returned
> >>> to it, and one of our test systems uses a Mellanox 5 NIC, which did not build.
>
> No problem - I appreciate all the time you have spent on it so far!
>
> >>>
> >>> If you still have time to work on your patch series, please, can you
> >>> look into enabling MLX5_CORE_EN?
>
> I've also had other things that have been taking up my time. I'm planning to get
> back to this series properly after Christmas and convert all the remaining
> module code. I'm hoping that Michael's patch will solve your problem for now?
>
> >>>
> >>> Oh, and have you rebased the series to 6.12 yet?
>
> Afraid the latest I have at the moment is based on v6.12-rc3. It also includes
> all the changes from the review feedback:
>
> https://gitlab.arm.com/linux-arm/linux-rr/-/tree/features/boot-time-page-size-v2-wip
>
> >>>
> >>
> >> FWIW, here's what I hacked together to compile and run the mlx5 driver in
> >> a Hyper-V VM. This was against a 6.11 kernel code base.
> >
> > Wow! Thank you, Michael. I'll give it a try.
>
> Yes, thanks, Michael - I'll take a look at this and integrate into my tree after
> Christmas.
>

To be clear, you probably do *not* want to integrate my changes into your tree.
They are a hack, and I'm not sure what approach the mlx driver folks will want to
take. But they made the Mellanox CX-5 NIC functional for my purposes in testing
variable page sizes.

Michael