From: Masami Hiramatsu <mhiramat@kernel.org>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>,
Padmanabha Srinivasaiah <treasure4paddy@gmail.com>,
LKML <linux-kernel@vger.kernel.org>,
Jonathan Corbet <corbet@lwn.net>,
linux-doc@vger.kernel.org, Randy Dunlap <rdunlap@infradead.org>,
Nick Desaulniers <ndesaulniers@google.com>,
Sami Tolvanen <samitolvanen@google.com>,
Nathan Chancellor <nathan@kernel.org>,
llvm@lists.linux.dev, Masahiro Yamada <masahiroy@kernel.org>,
Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>
Subject: [PATCH v6 0/4] bootconfig: Support embedding a bootconfig in kernel for non initrd boot
Date: Thu, 31 Mar 2022 14:55:59 +0900 [thread overview]
Message-ID: <164870615889.127053.9055569952366814752.stgit@devnote2> (raw)
Hi,
Here are the 6th version of the patchset to enable kernel embedded bootconfig
for non-initrd kernel boot environment. This version adds a new patch to use
obj-y instead of lib-y for bootconfig([1/4]) and split the inline asm code into
independent asm file for incremental build with LTO THIN mode issue(*), which
was reported in the previous version [1].
[1] https://lore.kernel.org/all/164847778869.3060675.8115416881394543419.stgit@devnote2/T/#u
You can embed a bootconfig file into the kernel as a default bootconfig,
which will be used if there is no initrd or no bootconfig is attached to initrd.
This needs 2 options: CONFIG_EMBED_BOOT_CONFIG=y and set the file
path to CONFIG_EMBED_BOOT_CONFIG_FILE. Even if you embed the bootconfig file
to the kernel, it will not be enabled unless you pass "bootconfig" kernel
command line option at boot. Moreover, since this is just a "default"
bootconfig, you can override it with a new bootconfig if you attach another
bootconfig to the initrd (if possible).
CONFIG_EMBED_BOOT_CONFIG_FILE can take both absolute and relative path, but
to simplify and make it independent from the build environment, I recommend
you to use an absolute path for that.
This is requested by Padmanabha at the below thread[2];
[2] https://lore.kernel.org/all/20220307184011.GA2570@pswork/T/#u
(*) this issue has been reported to github ClangBuiltLinux project [3]
[3] https://github.com/ClangBuiltLinux/linux/issues/1618
and Nick told me that we can avoid this by disabling LTO on that file.
CFLAGS_REMOVE_<file>.o := $(CC_FLAGS_LTO)
But I chose Masahiro's idea to split the inline asm into an independent
asm file, since that can also simplify the Makefile.
The above mitigation should be applied to kernel/configs.c and kernel/kheaders.c
but that should be another story (maybe LTO bugfix?).
Thank you,
---
Masami Hiramatsu (4):
bootconfig: Make the bootconfig.o as a normal object file
bootconfig: Check the checksum before removing the bootconfig from initrd
bootconfig: Support embedding a bootconfig file in kernel
docs: bootconfig: Add how to embed the bootconfig into kernel
Documentation/admin-guide/bootconfig.rst | 31 +++++++++++++++++++++++++++---
MAINTAINERS | 1 +
include/linux/bootconfig.h | 10 ++++++++++
init/Kconfig | 21 ++++++++++++++++++++
init/main.c | 31 +++++++++++++++---------------
lib/.gitignore | 1 +
lib/Makefile | 10 +++++++++-
lib/bootconfig-data.S | 11 +++++++++++
lib/bootconfig.c | 13 +++++++++++++
9 files changed, 110 insertions(+), 19 deletions(-)
create mode 100644 lib/bootconfig-data.S
--
Masami Hiramatsu (Linaro) <mhiramat@kernel.org>
next reply other threads:[~2022-03-31 5:56 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-31 5:55 Masami Hiramatsu [this message]
2022-03-31 5:56 ` [PATCH v6 1/4] bootconfig: Make the bootconfig.o as a normal object file Masami Hiramatsu
2022-03-31 5:56 ` [PATCH v6 2/4] bootconfig: Check the checksum before removing the bootconfig from initrd Masami Hiramatsu
2022-03-31 5:56 ` [PATCH v6 3/4] bootconfig: Support embedding a bootconfig file in kernel Masami Hiramatsu
2022-03-31 6:27 ` Masahiro Yamada
2022-03-31 6:49 ` Masami Hiramatsu
2022-03-31 6:54 ` Masahiro Yamada
2022-03-31 7:20 ` Masami Hiramatsu
2022-03-31 5:56 ` [PATCH v6 4/4] docs: bootconfig: Add how to embed the bootconfig into kernel Masami Hiramatsu
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=164870615889.127053.9055569952366814752.stgit@devnote2 \
--to=mhiramat@kernel.org \
--cc=corbet@lwn.net \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=masahiroy@kernel.org \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=rdunlap@infradead.org \
--cc=rostedt@goodmis.org \
--cc=samitolvanen@google.com \
--cc=treasure4paddy@gmail.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 NNTP newsgroup(s).