From: Ingo Molnar <mingo@kernel.org>
To: Herbert Xu <herbert@gondor.apana.org.au>,
Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linux Crypto Mailing List <linux-crypto@vger.kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Andy Lutomirski <luto@kernel.org>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>
Subject: Re: x86-64: Maintain 16-byte stack alignment
Date: Thu, 12 Jan 2017 08:46:01 +0100 [thread overview]
Message-ID: <20170112074601.GB30151@gmail.com> (raw)
In-Reply-To: <20170112070534.GA14016@gondor.apana.org.au>
* Herbert Xu <herbert@gondor.apana.org.au> wrote:
> On Tue, Jan 10, 2017 at 09:05:28AM -0800, Linus Torvalds wrote:
> >
> > I'm pretty sure we have random asm code that may not maintain a
> > 16-byte stack alignment when it calls other code (including, in some
> > cases, calling C code).
> >
> > So I'm not at all convinced that this is a good idea. We shouldn't
> > expect 16-byte alignment to be something trustworthy.
>
> So what if we audited all the x86 assembly code to fix this? Would
> it then be acceptable to do a 16-byte aligned stack?
Audits for small but deadly details that isn't checked automatically by tooling
would inevitably bitrot again - and in this particular case there's a 50% chance
that a new, buggy change would test out to be 'fine' on a kernel developer's own
box - and break on different configs, different hw or with unrelated (and
innocent) kernel changes, sometime later - spreading the pain unnecessarily.
So my feeling is that we really need improved tooling for this (and yes, the GCC
toolchain should have handled this correctly).
But fortunately we have related tooling in the kernel: could objtool handle this?
My secret hope was always that objtool would grow into a kind of life insurance
against toolchain bogosities (which is a must for things like livepatching or a
DWARF unwinder - but I digress).
Thanks,
Ingo
next prev parent reply other threads:[~2017-01-12 7:46 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-10 14:33 x86-64: Maintain 16-byte stack alignment Herbert Xu
2017-01-10 14:39 ` Herbert Xu
2017-01-10 17:05 ` Linus Torvalds
2017-01-10 17:09 ` Andy Lutomirski
2017-01-11 3:11 ` Herbert Xu
2017-01-11 3:30 ` Linus Torvalds
2017-01-11 4:17 ` Linus Torvalds
2017-01-11 4:35 ` Herbert Xu
2017-01-11 6:01 ` Andy Lutomirski
2017-01-12 6:21 ` Andy Lutomirski
2017-01-12 7:40 ` Ingo Molnar
2017-01-12 14:02 ` Josh Poimboeuf
2017-01-12 19:51 ` Linus Torvalds
2017-01-12 20:08 ` Andy Lutomirski
2017-01-12 20:15 ` Josh Poimboeuf
2017-01-12 20:55 ` Josh Poimboeuf
2017-01-12 21:40 ` Linus Torvalds
2017-01-13 8:38 ` Herbert Xu
2017-01-13 1:46 ` Andy Lutomirski
2017-01-13 3:11 ` Josh Poimboeuf
2017-01-13 3:23 ` Andy Lutomirski
2017-01-13 4:27 ` Josh Poimboeuf
[not found] ` <CA+55aFzRrSwGxxfZk-RUEnsz=xhcSmOwE1CenfCPBWtsS9MwDw@mail.gmail.com>
2017-01-13 5:07 ` Josh Poimboeuf
2017-01-13 8:43 ` Herbert Xu
2017-01-13 8:42 ` Herbert Xu
2017-01-13 8:39 ` Herbert Xu
2017-01-13 8:36 ` Herbert Xu
2017-01-13 13:07 ` Josh Poimboeuf
[not found] ` <CA+55aFw+Z_ieo6DzTVB6_-TvQ0jj60s=T0mvXfqkBVFdKFPw_Q@mail.gmail.com>
2017-01-11 8:06 ` Ard Biesheuvel
2017-01-11 8:09 ` Herbert Xu
2017-01-11 18:20 ` Andy Lutomirski
2017-01-12 7:05 ` Herbert Xu
2017-01-12 7:46 ` Ingo Molnar [this message]
2017-01-12 14:49 ` Josh Poimboeuf
2017-01-12 7:51 ` Andy Lutomirski
2017-01-12 8:04 ` Herbert Xu
2017-01-12 8:18 ` Ingo Molnar
2017-01-12 15:03 ` Josh Poimboeuf
2017-01-12 15:06 ` Herbert Xu
2017-01-12 15:18 ` Josh Poimboeuf
2017-01-12 15:10 ` Josh Poimboeuf
2017-01-10 17:30 ` Ard Biesheuvel
2017-01-10 19:00 ` Andy Lutomirski
2017-01-10 19:16 ` Ard Biesheuvel
2017-01-10 19:22 ` Andy Lutomirski
2017-01-10 20:00 ` Ard Biesheuvel
2017-01-10 23:25 ` Andy Lutomirski
2017-01-11 3:26 ` Herbert Xu
2017-01-11 3:26 ` Herbert Xu
2017-01-11 3:16 ` Herbert Xu
2017-01-11 3:15 ` Herbert Xu
2017-01-12 6:12 ` Herbert Xu
2017-01-12 8:01 ` Ard Biesheuvel
2017-01-12 8:06 ` Herbert Xu
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=20170112074601.GB30151@gmail.com \
--to=mingo@kernel.org \
--cc=ard.biesheuvel@linaro.org \
--cc=herbert@gondor.apana.org.au \
--cc=jpoimboe@redhat.com \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/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