Re: [all better] Re: regression: massive trouble with fpu rework

From: Mike Galbraith
Date: Sat Jun 27 2015 - 04:55:43 EST


On Sat, 2015-06-27 at 10:25 +0200, Ingo Molnar wrote:
> * Mike Galbraith <umgwanakikbuti@xxxxxxxxx> wrote:
>
> > On Sat, 2015-06-27 at 08:25 +0200, Mike Galbraith wrote:
> > > Hi Ingo,
> > >
> > > My i7-4790 box is having one hell of a time with this merge window, is
> > > dead in the water.
> >
> > BIOS setting "Limit CPUID Maximum" upsets new fpu code mightily.
>
> Ok, that's interesting. Mind explaining it a bit more verbosely - which setting is
> causing what?

That BIOS setting is annotated with the helpful text "Disabled for
Windows XP". It makes box say interesting things during boot, like...

x86/fpu: XSTATE_CPUID missing!


..or with HEAD, it triggers warning..

if (boot_cpu_data.cpuid_level < XSTATE_CPUID) {
WARN_ON_FPU(1);
return;
}

..and all kinds of bad juju follows. I have no idea what the thing does
beyond what I can interpolate from the word 'limit'.

> This would suggest sensitivity on CPUID details, i.e. that doing
> fpu__init_system() before other CPU init sequences is causing the bug.
>
> Does the patch below perhaps make a difference? (I'd suggest to apply it _without_
> the other patch I sent.)

Yup, that made it not care about the BIOS setting.. again.

> Thanks,
>
> Ingo
>
> arch/x86/kernel/cpu/common.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
> index 9fc5e3d9d9c8..922c5e0cea4c 100644
> --- a/arch/x86/kernel/cpu/common.c
> +++ b/arch/x86/kernel/cpu/common.c
> @@ -742,7 +742,6 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
> cpu_detect(c);
> get_cpu_vendor(c);
> get_cpu_cap(c);
> - fpu__init_system(c);
>
> if (this_cpu->c_early_init)
> this_cpu->c_early_init(c);
> @@ -754,6 +753,7 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
> this_cpu->c_bsp_init(c);
>
> setup_force_cpu_cap(X86_FEATURE_ALWAYS);
> + fpu__init_system(c);
> }
>
> void __init early_cpu_init(void)


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/