Re: [PATCH v5 0/4] arch/x86: Remove unnecessary dependencies on bootparam.h

From: Ard Biesheuvel
Date: Mon Jan 15 2024 - 05:56:03 EST


On Mon, 15 Jan 2024 at 08:58, Thomas Zimmermann <tzimmermann@xxxxxxx> wrote:
>
> Hi
>
> Am 12.01.24 um 18:28 schrieb Ard Biesheuvel:
> > On Fri, 12 Jan 2024 at 10:50, Thomas Zimmermann <tzimmermann@xxxxxxx> wrote:
> >>
> >> Reduce build time in some cases by removing unnecessary include statements
> >> for <asm/bootparam.h>. Reorganize some header files accordingly.
> >>
> >> While working on the kernel's boot-up graphics, I noticed that touching
> >> include/linux/screen_info.h triggers a complete rebuild of the kernel
> >> on x86. It turns out that the architecture's PCI and EFI headers include
> >> <asm/bootparam.h>, which depends on <linux/screen_info.h>. But none of
> >> the drivers have any business with boot parameters or the screen_info
> >> state.
> >>
> >> The patchset moves code from bootparam.h and efi.h into separate header
> >> files and removes obsolete include statements on x86. I did
> >>
> >> make allmodconfig
> >> make -j28
> >> touch include/linux/screen_info.h
> >> time make -j28
> >>
> >> to measure the time it takes to rebuild. Results without the patchset
> >> are around 20 minutes.
> >>
> >> real 20m46,705s
> >> user 354m29,166s
> >> sys 28m27,359s
> >>
> >> And with the patchset applied it goes down to less than one minute.
> >>
> >> real 0m56,643s
> >> user 4m0,661s
> >> sys 0m32,956s
> >>
> >> The test system is an Intel i5-13500.
> >>
> >> v5:
> >> * silence clang warnings for real-mode code (Nathan)
> >> * revert boot/compressed/misc.h (kernel test robot)
> >> v4:
> >> * fix fwd declaration in compressed/misc.h (Ard)
> >> v3:
> >> * keep setup_header in bootparam.h (Ard)
> >> * implement arch_ima_efi_boot_mode() in source file (Ard)
> >> v2:
> >> * only keep struct boot_params in bootparam.h (Ard)
> >> * simplify arch_ima_efi_boot_mode define (Ard)
> >> * updated cover letter
> >>
> >> Thomas Zimmermann (4):
> >> arch/x86: Move UAPI setup structures into setup_data.h
> >> arch/x86: Move internal setup_data structures into setup_data.h
> >> arch/x86: Implement arch_ima_efi_boot_mode() in source file
> >> arch/x86: Do not include <asm/bootparam.h> in several files
> >>
> >
> > This looks ok to me, thanks for sticking with it.
> >
> > For the series,
> >
> > Reviewed-by: Ard Biesheuvel <ardb@xxxxxxxxxx>
>
> Thank you so much. Can this series go through the x86 tree?
>

Yes, this should be taken through the -tip tree. But I am not a -tip maintainer.

But please be aware that we are in the middle of the merge window
right now, and I suspect that the -tip maintainers may have some
feedback of their own. So give it at least a week or so, and ping this
thread again to ask how to proceed.

Also, please trim the cc list a bit when you do - this is mostly a x86
specific reshuffle of headers so no need to keep all the other
subsystem maintainers on cc while we finish up the discussion.