Re: [Xen-devel] PROBLEM: kernel panic xsave_init

From: Boris Ostrovsky
Date: Tue Oct 20 2015 - 09:22:34 EST


On 10/20/2015 08:11 AM, John Doe wrote:
On 20/10/2015 11:51, Jan Beulich wrote:
On 19.10.15 at 18:25, <boris.ostrovsky@xxxxxxxxxx> wrote:
On 10/19/2015 06:16 AM, John Doe wrote:
[ 0.000000] general protection fault: 0000 [#1] SMP
[ 0.000000] Modules linked in:
[ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted
4.1.9-6.pvops.qubes.x86_64 #1
[ 0.000000] Hardware name: To Be Filled By O.E.M. To Be Filled By
O.E.M./Z170 Extreme4, BIOS P1.80 09/18/2015
[ 0.000000] task: ffffffff81c154c0 ti: ffffffff81c00000 task.ti:
ffffffff81c00000
[ 0.000000] RIP: e030:[<ffffffff81d58fad>] [<ffffffff81d58fad>]
xstate_enable_boot_cpu+0xde/0x288
[ 0.000000] RSP: e02b:ffffffff81c03de8 EFLAGS: 00010046
[ 0.000000] RAX: 000000000000001f RBX: 0000000000000008 RCX:
0000000000000000
[ 0.000000] RDX: 0000000000000000 RSI: 000000000000001f RDI:
0000000000042660


It would be good to see what's at ffffffff81d58fad. My guess would be
that it's xsetbv.

If it is then you probably want to make sure you are running hypervisor
that has commit e8121c54 ("x86/xsave: enable support for new ISA
extensions"). Looks like the first version that has it is 4.5 and you
seem to be running 4.4.2.

Copying Jan to see if there are plans to backport this (probably not
since it's a new feature).

Hmm, if there are features getting exposed that lead to crashes like
this, then while we wouldn't normally backport enhancements, we
may need to consider adding a one-off patch to hide respective
features to that stable branch. But first we of course need to
understand what is going on here.


The reason I think its this commit is that RAX, RDX and RCX look very much like arguments to xsetbv (which xstate_enable_boot_cpu() executes) and RAX value is 0x1f, which has two new bits that this commit defined.

With this being a new processor (Skylake) it would be logical to have these bits provided by CPUID.


Jan


I will try with 4.6.0 asap, unfortunately the 4.4.2 image i have is not
built with debug enabled and i'm unable to run gdb at boot, i'm building
a new one right now.

You should be able to use 'gdb /proc/kcore' and look at the instruction at (and around) 0xffffffff81d58fad.

If you need anything else please be very step-specific since i'm not
very practical at this.

You can also try adding
cpuid=['0xd,0:eax=00000000000000000000000000000111']
to your config file and see if it helps.


-boris



--
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/