From: Nick Desaulniers <firstname.lastname@example.org> To: Pavel Machek <email@example.com> Cc: Roman Kiryanov <firstname.lastname@example.org>, "Rafael J. Wysocki" <email@example.com>, Thomas Gleixner <firstname.lastname@example.org>, Ingo Molnar <email@example.com>, "maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)" <firstname.lastname@example.org>, email@example.com, Greg KH <firstname.lastname@example.org>, Alistair Delva <email@example.com>, Haitao Shan <firstname.lastname@example.org> Subject: Re: [PATCH] arch: x86: power: cpu: init %gs before __restore_processor_state (clang) Date: Tue, 15 Sep 2020 15:21:25 -0700 [thread overview] Message-ID: <CAKwvOdnuR9GF2tZuyS7Fe8i-S0W2YZ45qP8xJRm_gf+g+oF4=Q@mail.gmail.com> (raw) In-Reply-To: <20200915221708.GA26453@duo.ucw.cz> On Tue, Sep 15, 2020 at 3:17 PM Pavel Machek <email@example.com> wrote: > > Hi! > > > From: Haitao Shan <firstname.lastname@example.org> > > > > This is a workaround which fixes triple fault > > in __restore_processor_state on clang when > > built with LTO. > > > > When load_TR_desc and load_mm_ldt are inlined into > > fix_processor_context due to LTO, they cause > > fix_processor_context (or in this case __restore_processor_state, > > as fix_processor_context was inlined into __restore_processor_state) > > to access the stack canary through %gs, but before > > __restore_processor_state has restored the previous value > > of %gs properly. LLVM appears to be inlining functions with stack > > protectors into functions compiled with -fno-stack-protector, > > which is likely a bug in LLVM's inliner that needs to be fixed. > > That's rather ugly. > > Would it be easier to simply mark those functions as noinline or > something like that? It is possible, and a possible solution here. We discussed that internally, and found it to not be great. You only want to prevent inlining across TUs for LTO; currently there's no great way to express that in source code. As in "go ahead and inline this from calls within the TU that this is defined, but don't inline across TUs other than from where the callee is defined." I think we should create a function level attribute for expressing that intention to the compiler. You could emulate that somewhat by wrapping the noinline attribute in CONFIG_LTO_CLANG, but that doesn't solve allowing inlining within the same TU. If you've been following the thread, there's multiple ways to skin this cat; your suggestion is one we did consider, just not on the public mailing list. -- Thanks, ~Nick Desaulniers
next prev parent reply other threads:[~2020-09-15 22:21 UTC|newest] Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-09-15 17:26 rkir 2020-09-15 17:46 ` Borislav Petkov 2020-09-15 17:57 ` Roman Kiryanov 2020-09-15 18:27 ` Borislav Petkov 2020-09-15 18:36 ` Roman Kiryanov 2020-09-15 18:52 ` Borislav Petkov 2020-09-15 18:55 ` Roman Kiryanov 2020-09-18 22:25 ` Pavel Machek 2020-09-21 23:28 ` Roman Kiryanov 2020-10-04 9:59 ` Pavel Machek 2020-09-15 18:00 ` Nick Desaulniers 2020-09-15 18:25 ` Borislav Petkov 2020-09-15 19:51 ` Nick Desaulniers 2020-09-15 20:20 ` Borislav Petkov 2020-09-15 21:49 ` Nick Desaulniers 2020-09-16 9:23 ` Borislav Petkov 2020-09-19 16:48 ` Pavel Machek 2020-09-16 8:17 ` peterz 2020-09-15 20:44 ` Arvind Sankar 2020-09-15 22:17 ` Pavel Machek 2020-09-15 22:21 ` Nick Desaulniers [this message] 2020-09-18 22:20 ` Pavel Machek 2020-09-15 23:13 ` Roman Kiryanov
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='CAKwvOdnuR9GF2tZuyS7Fe8i-S0W2YZ45qP8xJRm_gf+g+oF4=Q@mail.gmail.com' \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --subject='Re: [PATCH] arch: x86: power: cpu: init %gs before __restore_processor_state (clang)' \ /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
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).