From: Ingo Molnar <mingo@kernel.org>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Borislav Petkov <bp@alien8.de>,
Mike Galbraith <umgwanakikbuti@gmail.com>,
Ingo Molnar <mingo@elte.hu>, LKML <linux-kernel@vger.kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Andy Lutomirski <luto@kernel.org>,
Denys Vlasenko <dvlasenk@redhat.com>,
Oleg Nesterov <oleg@redhat.com>, Dave Hansen <dave@sr71.net>
Subject: Re: [all better] Re: regression: massive trouble with fpu rework
Date: Tue, 30 Jun 2015 07:14:16 +0200 [thread overview]
Message-ID: <20150630051416.GA5782@gmail.com> (raw)
In-Reply-To: <5591A103.6020104@zytor.com>
* H. Peter Anvin <hpa@zytor.com> wrote:
> On 06/29/2015 02:35 AM, Ingo Molnar wrote:
> >
> > Indeed, I bet that makes a difference!
> >
> > I wish that 'unmasking' logic came with more comments:
> >
> > - Why do BIOSen ever mask CPUIDs?
> >
>
> To work around bugs in legacy operating systems.
>
> > - Why do we unmask the masking?
>
> Because we don't have those specific bugs.
Great - would be nice to put those reasons between /* */ markers, to keep future
generations (and overworked maintainers!) from wondering.
> > - Why doesn't the kernel keep on working just fine even if certain CPUID aspects
> > are turned off?
>
> Because it exercises code paths that are otherwise impossible, for example, it
> exposes the XSAVE capability without exposing the XSAVE information in higher
> CPUID leaves.
>
> The other option would be to have a list of CPU features that should be turned
> off whenever the CPUID leaf maximum is too low, but it gives a better user
> experience to just override the BIOS capping and then we have fewer code paths
> in the kernel to worry about.
1)
As a side note, I think we should generally be robust enough to recognize pretty
much any CPUID 'mischief' and at minimum not crash.
2)
But this FPU crash is different, here the reason for the crash is the following
bug in the FPU code:
fpu__init_system(); /* inits the FPU based on masked CPUID */
... CPUID *extends* ...
fpu__init_cpu(); /* Actually uses the FPU now based on the expanded CPUID */
*KABOOM*
I.e. we (obviously) should not base half on the FPU logic on different CPUID bits
than the other half of the FPU logic.
I'll queue up the fix, which is to do the early FPU init after our CPUID state
stabilizes. (i.e. the second patch I sent to Mike.)
Thanks,
Ingo
next prev parent reply other threads:[~2015-06-30 5:14 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-27 6:25 regression: massive trouble with fpu rework Mike Galbraith
2015-06-27 8:18 ` [all better] " Mike Galbraith
2015-06-27 8:25 ` Ingo Molnar
2015-06-27 8:55 ` Mike Galbraith
2015-06-27 9:37 ` Borislav Petkov
2015-06-27 11:01 ` Mike Galbraith
2015-06-27 21:02 ` Henrique de Moraes Holschuh
2015-06-28 3:11 ` Mike Galbraith
2015-06-28 15:06 ` Henrique de Moraes Holschuh
2015-06-28 15:39 ` Mike Galbraith
2015-06-29 1:12 ` Henrique de Moraes Holschuh
2015-06-29 6:40 ` Ingo Molnar
2015-06-29 8:25 ` Mike Galbraith
2015-06-29 8:33 ` Borislav Petkov
2015-06-29 8:41 ` Mike Galbraith
2015-06-29 9:35 ` Ingo Molnar
2015-06-29 9:57 ` Borislav Petkov
2015-06-29 19:48 ` H. Peter Anvin
2015-06-30 5:14 ` Ingo Molnar [this message]
2015-06-29 12:27 ` Mike Galbraith
2015-06-29 13:09 ` Borislav Petkov
2015-06-30 5:16 ` Ingo Molnar
2015-06-30 20:22 ` H. Peter Anvin
2015-07-09 13:13 ` Henrique de Moraes Holschuh
2015-06-29 19:50 ` H. Peter Anvin
2015-06-30 5:18 ` Ingo Molnar
2015-06-30 5:24 ` [tip:x86/urgent] x86/fpu: Fix FPU related boot regression when CPUID masking BIOS feature is enabled tip-bot for Ingo Molnar
2015-06-27 8:18 ` regression: massive trouble with fpu rework Ingo Molnar
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=20150630051416.GA5782@gmail.com \
--to=mingo@kernel.org \
--cc=bp@alien8.de \
--cc=dave@sr71.net \
--cc=dvlasenk@redhat.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mingo@elte.hu \
--cc=oleg@redhat.com \
--cc=tglx@linutronix.de \
--cc=umgwanakikbuti@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