|
|
|
|
|
|
|
|
|
|
xen-devel
RE: [Xen-devel] [PATCH] monitor_table not zeroed when enteringalloc_moni
>Problem (as reported by dsteklof@xxxxxxxxxx)
>>I'm hitting an ASSERT in alloc_monitor_pagetable() with debug=y and I
>>can reproduce the condition when debug isn't on. The monitor_table is
>>not zeroed when entering alloc_monitor_pagetable() - this
>happens when I
>>create a vmx guest. I'm not sure why this happening at first glance.
>>File: xen/arch/x86/shadow32.c
>>Line: 689
>>System: VT/VMX FC3 x86_32 (I can reproduce on FC4 x86_64 too)
>>ASSERT(pagetable_get_paddr(v->arch.monitor_table) == 0);
>
>Solution:
>What happens is that the monitor page table is not zeroed out
>during the initial setup for VMX guests. As a result, at a later
>time when we enable shadow mode for these VMX guests, we trip on
>the ASSERT problem above. To fix this, we just need to initialize
>the monitor page table to 0 before calling vmx_final_setup_guest()
>and enabling shadow mode.
>
>This patch has been tested well with VMX guests running WinXP.
>Please let me know if you need further information, or if you
>have any comments, suggestions, etc. Thanks.
>
>(See attached file: monitor_table.patch)
This patch doesn't really fix the issue here, actually in alloc_vcpu, we
do a memset on the allocated vcpu structure, so monitor_table should be
0, but I'm not seeing where it is set to a none 0 value.
The problem the patch will cause is, on a SMP VMX guest, monitor
pagetable is allocated for each vcpu in shadow_mode_enable, which is
called when we initialize vcpu 0, but it is set to 0 in
arch_set_info_guest later :(, so it's only OK to vcpu 0.
I think we need find the point where monitor_table is set to a none 0
value.
Any comments?
thanks
-Xin
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- RE: [Xen-devel] [PATCH] monitor_table not zeroed when enteringalloc_monitor_pagetable,
Li, Xin B <=
|
|
|
|
|