Re: [PATCH v5 0/4] arch/x86: Remove unnecessary dependencies on bootparam.h
From: Ard Biesheuvel
Date: Fri Jan 12 2024 - 12:29:20 EST
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>