From: Thomas Zimmermann <tzimmermann@suse.de>
To: ardb@kernel.org, nathan@kernel.org, tglx@linutronix.de,
mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
x86@kernel.org, hpa@zytor.com, bhelgaas@google.com,
arnd@arndb.de, zohar@linux.ibm.com, dmitry.kasatkin@gmail.com,
paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com,
javierm@redhat.com
Cc: linux-arch@vger.kernel.org, linux-efi@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org,
linux-integrity@vger.kernel.org,
linux-security-module@vger.kernel.org,
Thomas Zimmermann <tzimmermann@suse.de>
Subject: [PATCH v5 0/4] arch/x86: Remove unnecessary dependencies on bootparam.h
Date: Fri, 12 Jan 2024 10:44:35 +0100 [thread overview]
Message-ID: <20240112095000.8952-1-tzimmermann@suse.de> (raw)
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
arch/x86/Makefile | 3 +
arch/x86/boot/compressed/acpi.c | 2 +
arch/x86/boot/compressed/cmdline.c | 2 +
arch/x86/boot/compressed/efi.c | 2 +
arch/x86/boot/compressed/efi.h | 9 ---
arch/x86/boot/compressed/pgtable_64.c | 1 +
arch/x86/boot/compressed/sev.c | 1 +
arch/x86/include/asm/efi.h | 14 +----
arch/x86/include/asm/kexec.h | 1 -
arch/x86/include/asm/mem_encrypt.h | 2 +-
arch/x86/include/asm/pci.h | 13 ----
arch/x86/include/asm/setup_data.h | 32 ++++++++++
arch/x86/include/asm/sev.h | 3 +-
arch/x86/include/asm/x86_init.h | 2 -
arch/x86/include/uapi/asm/bootparam.h | 72 +---------------------
arch/x86/include/uapi/asm/setup_data.h | 83 ++++++++++++++++++++++++++
arch/x86/kernel/crash.c | 1 +
arch/x86/kernel/sev-shared.c | 2 +
arch/x86/platform/efi/efi.c | 5 ++
arch/x86/platform/pvh/enlighten.c | 1 +
arch/x86/xen/enlighten_pvh.c | 1 +
arch/x86/xen/vga.c | 1 -
22 files changed, 143 insertions(+), 110 deletions(-)
create mode 100644 arch/x86/include/asm/setup_data.h
create mode 100644 arch/x86/include/uapi/asm/setup_data.h
--
2.43.0
next reply other threads:[~2024-01-12 9:50 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-12 9:44 Thomas Zimmermann [this message]
2024-01-12 9:44 ` [PATCH v5 1/4] arch/x86: Move UAPI setup structures into setup_data.h Thomas Zimmermann
2024-01-12 9:44 ` [PATCH v5 2/4] arch/x86: Move internal setup_data " Thomas Zimmermann
2024-01-12 9:44 ` [PATCH v5 3/4] arch/x86: Implement arch_ima_efi_boot_mode() in source file Thomas Zimmermann
2024-01-12 9:44 ` [PATCH v5 4/4] arch/x86: Do not include <asm/bootparam.h> in several files Thomas Zimmermann
2024-01-12 17:28 ` [PATCH v5 0/4] arch/x86: Remove unnecessary dependencies on bootparam.h Ard Biesheuvel
2024-01-15 7:58 ` Thomas Zimmermann
2024-01-15 10:55 ` Ard Biesheuvel
2024-01-15 11:00 ` Borislav Petkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240112095000.8952-1-tzimmermann@suse.de \
--to=tzimmermann@suse.de \
--cc=ardb@kernel.org \
--cc=arnd@arndb.de \
--cc=bhelgaas@google.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=dmitry.kasatkin@gmail.com \
--cc=hpa@zytor.com \
--cc=javierm@redhat.com \
--cc=jmorris@namei.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=nathan@kernel.org \
--cc=paul@paul-moore.com \
--cc=serge@hallyn.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=zohar@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).