All of lore.kernel.org
 help / color / mirror / Atom feed
From: Masahiro Yamada <masahiroy@kernel.org>
To: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Nick Desaulniers <ndesaulniers@google.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Padmanabha Srinivasaiah <treasure4paddy@gmail.com>,
	LKML <linux-kernel@vger.kernel.org>,
	Jonathan Corbet <corbet@lwn.net>,
	"open list:DOCUMENTATION" <linux-doc@vger.kernel.org>,
	Randy Dunlap <rdunlap@infradead.org>,
	Sami Tolvanen <samitolvanen@google.com>,
	Nathan Chancellor <nathan@kernel.org>,
	llvm@lists.linux.dev,
	Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>
Subject: Re: [PATCH v5 0/3] bootconfig: Support embedding a bootconfig in kernel for non initrd boot
Date: Thu, 31 Mar 2022 11:13:40 +0900	[thread overview]
Message-ID: <CAK7LNAQU4-CNUJGzsO_kx4SrwNWrd=vnObWkuyV063imZcGFsw@mail.gmail.com> (raw)
In-Reply-To: <20220331104531.81d0edf9a85a4f69020a9f13@kernel.org>

On Thu, Mar 31, 2022 at 10:45 AM Masami Hiramatsu <mhiramat@kernel.org> wrote:
>
> Hi Nick,
>
> On Wed, 30 Mar 2022 11:04:50 -0700
> Nick Desaulniers <ndesaulniers@google.com> wrote:
>
> > On Mon, Mar 28, 2022 at 7:29 AM Masami Hiramatsu <mhiramat@kernel.org> wrote:
> > >
> > > KNOWN ISSUE:
> > >
> > > According to the report from Padmanabha[3] and my analysis [4], the embedded
> > > bootconfig data may not be updated if you do incremental build the kernel
> > > with CONFIG_LTO_CLANG_THIN.
> > >
> > > [3] https://lore.kernel.org/all/20220321183500.GA4065@pswork/T/#u
> > > [4] https://lore.kernel.org/all/20220327115526.cc4b0ff55fc53c97683c3e4d@kernel.org/
> > >
> > > This seems like clang's LTO Thin mode issue. It may not detect the inline
> > > asm depends on external files.
> > >
> > > I think the possible workaround is to split the inline asm which includes
> > > '.incbin' directive into an asm file. But this should be done in another
> > > seires because there are other features which uses '.incbin'. (e.g.
> > > /proc/config.gz)
> >
> > Hi Masami,
> > I saw Padmanabha's report (thanks for the report); sorry for not
> > responding sooner, I've been traveling recently for a funeral.
>
> Oh, sorry about that. I think this is not so hurry.
>
> >
> > Any chance we can use
> >
> > CFLAGS_REMOVE_<file>.o := $(CC_FLAGS_LTO)
> >
> > a la
> > commit d2dcd3e37475 ("x86, cpu: disable LTO for cpu.c")
>
> Hm, this looks good to me. Let me confirm that works.
> (Does this mean the bootconfig.o will be compiled to elf binary?)


Why are you using  ".incbin" in the C file in the first place?


You might have mimicked  kernel/configs.c
but there was a reason;  kernel/configs.c can be a module,
but we cannot put MODULE_LICENSE() in *.S  file.
(commit 13610aa908dcfce77135bb799c0a10d0172da6ba)


In this case, CONFIG_EMBED_BOOT_CONFIG is a bool
option.

Why don't you simply move the asm() part to a separate
bootconfig-data.S ?

Clang lto flags are only passed to *.c files,
so we do not need to be worried about  .incbin in *.S files.


Then, Makefile will be even cleaner (no ifeq-block)


lib-$(CONFIG_BOOT_CONFIG) += bootconfig.o
obj-$(CONFIG_EMBED_BOOT_CONFIG) += bootconfig-data.o

$(obj)/bootconfig-data.o: $(obj)/default.bconf

targets += default.bconf
filechk_defbconf = cat $(or $(real-prereqs), /dev/null)
$(obj)/default.bconf: $(CONFIG_EMBED_BOOT_CONFIG_FILE) FORCE
        $(call filechk,defbconf)





BTW, why lib-$(CONFIG_BOOT_CONFIG),
instead of obj-$(CONFIG_BOOT_CONFIG)  ?



>
> >
> > with a comment linking to
> > https://github.com/ClangBuiltLinux/linux/issues/1618
>
> Thanks for reporting!
>
> >
> > for the Translation Units using .incbin, until we have had more time
> > to triage+fix?
>
> Yes. For this series, I can update with above one, but it doesn't cover the
> other parts. And since this issue is independent from the bootconfig,
> I think we need a wider patch series to mitigate this issue on config.gz
> (and other .incbin users) too.
>
> Thank you,
>
> >
> > --
> > Thanks,
> > ~Nick Desaulniers
>
>
> --
> Masami Hiramatsu <mhiramat@kernel.org>




--
Best Regards
Masahiro Yamada

  reply	other threads:[~2022-03-31  2:18 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-28 14:29 [PATCH v5 0/3] bootconfig: Support embedding a bootconfig in kernel for non initrd boot Masami Hiramatsu
2022-03-28 14:30 ` [PATCH v5 1/3] bootconfig: Check the checksum before removing the bootconfig from initrd Masami Hiramatsu
2022-03-28 14:30 ` [PATCH v5 2/3] bootconfig: Support embedding a bootconfig file in kernel Masami Hiramatsu
2022-03-28 14:30 ` [PATCH v5 3/3] docs: bootconfig: Add how to embed the bootconfig into kernel Masami Hiramatsu
2022-03-30 18:04 ` [PATCH v5 0/3] bootconfig: Support embedding a bootconfig in kernel for non initrd boot Nick Desaulniers
2022-03-31  1:45   ` Masami Hiramatsu
2022-03-31  2:13     ` Masahiro Yamada [this message]
2022-03-31 17:31     ` Nick Desaulniers

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='CAK7LNAQU4-CNUJGzsO_kx4SrwNWrd=vnObWkuyV063imZcGFsw@mail.gmail.com' \
    --to=masahiroy@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=mhiramat@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.