|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Xen 4.6.1 crash with altp2m enabled by default
According to the crash-dump ( output of vcpu ) the v->arch.hvm_vmx.host_cr0 is
" 0 ".
This cannot be the correct result because of
if ( !(v->arch.hvm_vmx.host_cr0 & X86_CR0_TS) )
{
v->arch.hvm_vmx.host_cr0 |= X86_CR0_TS;
__vmwrite(HOST_CR0, v->arch.hvm_vmx.host_cr0);
}
It should at least be 0x8.
Also the v->arch.hvm_vmx.vmcs is " 0 " which I assume leads to the crash.
Since I assumed that somehow the wrong VCPU is used I tried to find the correct
one:
vcpus gives
VCID PCID VCPU ST T DOMID DOMAIN
> 0 0 ffff8300e7557000 RU I 32767 ffff830c14ee1000
> 1 1 ffff8300e75f2000 RU I 32767 ffff830c14ee1000
2 2 ffff8300e72fe000 RU I 32767 ffff830c14ee1000
> 3 3 ffff8300e75f1000 RU I 32767 ffff830c14ee1000
> 4 4 ffff8300e75f0000 RU I 32767 ffff830c14ee1000
> 5 5 ffff8300e72fd000 RU I 32767 ffff830c14ee1000
>* 6 6 ffff8300e72fc000 RU I 32767 ffff830c14ee1000
> 7 7 ffff8300e72fb000 RU I 32767 ffff830c14ee1000
> 0 2 ffff8300e72f9000 RU 0 0 ffff830c17e32000
1 3 ffff8300e72f8000 BL 0 0 ffff830c17e32000
2 5 ffff8300e755f000 BL 0 0 ffff830c17e32000
3 0 ffff8300e755e000 BL 0 0 ffff830c17e32000
4 6 ffff8300e755d000 BL 0 0 ffff830c17e32000
5 4 ffff8300e755c000 BL 0 0 ffff830c17e32000
6 7 ffff8300e755b000 BL 0 0 ffff830c17e32000
7 5 ffff8300e755a000 BL 0 0 ffff830c17e32000
0 1 ffff8300e6fc7000 BL U 162 ffff830bdee8f000
0 3 ffff8300e6fc9000 BL U 163 ffff830be20d3000
0 6 ffff8300e6fc0000 BL U 164 ffff830be8dc9000
0 0 ffff8300e6fc6000 BL U 165 ffff830bd0cc0000
Since I see the domain ffff830be8dc9000 all over the xen dmesg this should be
the correct VCPU.
On this CPU the v->arch.hvm_vmx.host_cr0 is 2147811387 (0x 8005003B) which
corresponds to the cr0 in the xen dmesg.
v->arch.hvm_vmx.vmcs is 0xffff830bd0da1000
crash> x /10x 0xffff830bd0da1000
0xffff830bd0da1000: 0x000000000000000e 0x0000000000000000
0xffff830bd0da1010: 0x0000000000000000 0x0000000000000000
0xffff830bd0da1020: 0x0000000000000000 0x0000000000000000
0xffff830bd0da1030: 0x0000000000000000 0x0000000000000000
0xffff830bd0da1040: 0x0000000000000000 0x0000000000000000
So the vmcs revision id is 0xe.
rdmsr 0x480 (the IA32_VMX_BASIC MSR ) gives da04000000000e which confirms the
revision ID.
Size should be 0x400 bytes.
crash> x /130x 0xffff830bd0da1000
0xffff830bd0da1000: 0x000000000000000e 0x0000000000000000
0xffff830bd0da1010: 0x0000000000000000 0x0000000000000000
0xffff830bd0da1020: 0x0000000000000000 0x0000000000000000
0xffff830bd0da1030: 0x0000000000000000 0x0000000000000000
0xffff830bd0da1040: 0x0000000000000000 0x0000000000000000
0xffff830bd0da1050: 0x0000000000000000 0x0000000000000000
0xffff830bd0da1060: 0x0000000000000000 0x0000000000000000
0xffff830bd0da1070: 0x0000000000000000 0x0000000bd0da3000
0xffff830bd0da1080: 0x0000000c17e36000 0x0000000000000000
0xffff830bd0da1090: 0x0000000000000000 0x0000000000000000
0xffff830bd0da10a0: 0x00000000e7512000 0x00000000e7513000
0xffff830bd0da10b0: 0x0000000bd0da0000 0x0000000000000000
0xffff830bd0da10c0: 0x0000000000000000 0x0000000000000000
0xffff830bd0da10d0: 0x0000000000000000 0x0000006fedea809b
0xffff830bd0da10e0: 0x00000001a379e000 0x0000000610f9101e
0xffff830bd0da10f0: 0x0000000000000000 0xffffffffffffffff
0xffff830bd0da1100: 0x0000000000000000 0x0007010600070106
0xffff830bd0da1110: 0x0000000000000000 0x0000000000000000
0xffff830bd0da1120: 0x0000006bb6a075fa 0x000600420000003f
0xffff830bd0da1130: 0x0000000000000000 0x000fefff00000000
0xffff830bd0da1140: 0x0000000000000000 0x00000000000051ff
0xffff830bd0da1150: 0x0000000000000041 0x0000000000000000
0xffff830bd0da1160: 0x0000000000000000 0x0000000c00000000
0xffff830bd0da1170: 0x0000000000000000 0x0000000000000000
0xffff830bd0da1180: 0x0000000000000001 0x0000000000000000
0xffff830bd0da1190: 0x0000000800000000 0x0000000000000000
0xffff830bd0da11a0: 0x0000000000000001 0x0000000000000096
0xffff830bd0da11b0: 0xffff82d0802bc208 0x00000000806f6dbc
0xffff830bd0da11c0: 0x0000000000000000 0x0000000000000400
0xffff830bd0da11d0: 0x0000000080550f34 0x00000000f0e48161
0xffff830bd0da11e0: 0x0000000000000246 0x0000000000000000
0xffff830bd0da11f0: 0x00000000f79c3000 0x00000000804de6f0
0xffff830bd0da1200: 0x0000000000000023 0x0000000000000000
0xffff830bd0da1210: 0x00c0f300ffffffff 0x0000000000000008
0xffff830bd0da1220: 0x0000000000000000 0x00c09b00ffffffff
0xffff830bd0da1230: 0x0000000000000010 0x0000000000000000
0xffff830bd0da1240: 0x00c09300ffffffff 0x0000000000000023
0xffff830bd0da1250: 0x0000000000000000 0x00c0f300ffffffff
0xffff830bd0da1260: 0x0000000000000030 0x00000000ffdff000
0xffff830bd0da1270: 0x00c0930000001fff 0x0000000000000000
0xffff830bd0da1280: 0x0000000000000000 0x01c00000ffffffff
0xffff830bd0da1290: 0x0000000000000000 0x0000000000000000
0xffff830bd0da12a0: 0x01c00000ffffffff 0x0000000000000028
0xffff830bd0da12b0: 0x0000000080042000 0x00008b00000020ab
0xffff830bd0da12c0: 0x000000008003f000 0x000000008003f400
0xffff830bd0da12d0: 0x000007ff000003ff 0x000000008001003b
0xffff830bd0da12e0: 0x0000000000039000 0x00000000000026d9
0xffff830bd0da12f0: 0x000000000000dc3c 0x0000000000000000
0xffff830bd0da1300: 0x0000e00800000000 0x0000000000000000
0xffff830bd0da1310: 0x0000000000000000 0x000000000000e040
0xffff830bd0da1320: 0x0000050100070406 0x0000000000000000
0xffff830bd0da1330: 0x0000000000000000 0x0000000080050033
0xffff830bd0da1340: 0x00000001bd665000 0x00000000000026e0
0xffff830bd0da1350: 0x0000000000000000 0x0000000000000000
0xffff830bd0da1360: 0xffff830c17e38c80 0xffff830617fd3000
0xffff830bd0da1370: 0xffff830617fcf000 0xffff830617fd7fc0
0xffff830bd0da1380: 0xffff82d08024e150 0xffff830617fd7f90
0xffff830bd0da1390: 0xffff82d080201bb0 0x000000000000e008
0xffff830bd0da13a0: 0x0000006000000000 0x0000000000000000
0xffff830bd0da13b0: 0x0000000000000000 0x0000000000000000
0xffff830bd0da13c0: 0xffffffffffffffff 0xffffffffffffffff
0xffff830bd0da13d0: 0x000000008001003b 0x00000000000006d9
0xffff830bd0da13e0: 0x0000000000000000 0x0000000000000000
0xffff830bd0da13f0: 0x0000000000000000 0x0000000000000000
0xffff830bd0da1400: 0x0000000000000000 0x0000000000000000
I don't quite understand the Intel developer manual at this point. How do I
have to read this data?
Since if ( !(v->arch.hvm_vmx.host_cr0 & X86_CR0_TS) ) must be true I assume the
__vmwrite tries to | 0x8 into the host_cr0 leading to the 0x0000000080050033
for the current host_cr0 ( or better the 0x80050033 ).
Or at least this is what I think was intended to happen.
> -----Ursprüngliche Nachricht-----
> Von: Jan Beulich [mailto:JBeulich@xxxxxxxx]
> Gesendet: Mittwoch, 3. August 2016 15:54
> An: Mayer, Kevin <Kevin.Mayer@xxxxxxxx>
> Cc: andrew.cooper3@xxxxxxxxxx; xen-devel@xxxxxxxxxxxxx
> Betreff: Re: AW: [Xen-devel] Xen 4.6.1 crash with altp2m enabled by default
>
> >>> On 03.08.16 at 15:24, <Kevin.Mayer@xxxxxxxx> wrote:
> > I got around to take a closer look at the crash dump today.
> >
> > tl;dr:
> > You were right, vmx_vmenter_helper is not called at all in the call stack.
> > The real reason behind the [<ffff82d0801fd23a>]
> > vmx_vmenter_helper+0x27e/0x30a should be a failed
> __vmwrite(HOST_CR0,
> > v->arch.hvm_vmx.host_cr0); in static void vmx_fpu_leave(struct vcpu
> > *v).
>
> Ah - that's what you get for not using most recent code, and what I get for
> not considering the effect of you being on 4.6.x. In any event - the call
> stack
> is then fine, and you'll want to figure out which bit(s) of the new CR0 value
> are in conflict with the rest of the active VMCS.
>
> Jan
____________
Virus checked by G Data MailSecurity
Version: AVA 25.7724 dated 04.08.2016
Virus news: www.antiviruslab.com
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |