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>