[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Xen-devel Digest, Vol 96, Issue 249



> Hi, 
> 
> Thanks for the report. 
> 
> At 11:47 +0100 on 18 Feb (1361188042), Sylvain Munaut wrote:
>> I've just installed a self-built Xen 4.2.1 package on a debian wheezy
>> and when trying to run a HVM VM (that I was previously running with
>> the official xen 4.0 package on squeeze), it starts fine and I can
>> even use the VM for a few minutes then suddenly I loose all
>> communication with VM and the Dom0 and it just reboots ...
> 
> Did you make any changes to Xen before you built it, or were you just
> building your own to get 4.2?
> 
>> (XEN) mm locking order violation: 260 > 222
>> (XEN) Xen BUG at mm-locks.h:118
> 
> Hmm, taking the p2m lock with the pod lock held. :( My guess would be
> the p2m_lock() in p2m_pod_emergency_sweep().
> 
> Do you by any chance have the xen-syms file from when you built Xen?
> That would let us see exactly what's happened.
> 
> In the meantime, perhaps you could try the attached (untested) patch.
> If my guess is right, it ought to stop the crashes but you might find
> the VM's performance suffers.
> 
> Cheers,
> 
> Tim.
> 
>> (XEN)    [<ffff82c4801e15fd>] p2m_pod_demand_populate+0x87d/0x8a0
>> (XEN)    [<ffff82c48016a4bd>] get_page+0x2d/0x100
>> (XEN)    [<ffff82c4801d6666>] __get_gfn_type_access+0x86/0x260
>> (XEN)    [<ffff82c4801dbec3>] p2m_gfn_to_mfn+0x693/0x810
>> (XEN)    [<ffff82c4801d6666>] __get_gfn_type_access+0x86/0x260
>> (XEN)    [<ffff82c4801fa23f>] sh_page_fault__guest_3+0x24f/0x1e40
>> (XEN)    [<ffff82c4801cdda8>] vmx_update_guest_cr+0x78/0x5d0
>> (XEN)    [<ffff82c4801ae2da>] hvm_set_cr0+0x2ea/0x480
>> (XEN)    [<ffff82c4801b2bb4>] hvm_mov_to_cr+0xe4/0x1a0
>> (XEN)    [<ffff82c4801cfa63>] vmx_vmexit_handler+0xd33/0x1790
>> (XEN)    [<ffff82c4801cafb5>] vmx_do_resume+0xb5/0x170
>> (XEN)    [<ffff82c48015968c>] context_switch+0x15c/0xdf0
>> (XEN)    [<ffff82c480125d7b>] add_entry+0x4b/0xb0
>> (XEN)    [<ffff82c480125d7b>] add_entry+0x4b/0xb0
>> (XEN)    [<ffff82c4801bf3c7>] pt_update_irq+0x27/0x200
>> (XEN)    [<ffff82c480119830>] csched_tick+0x0/0x2e0
>> (XEN)    [<ffff82c4801bd5a1>] vlapic_has_pending_irq+0x21/0x60
>> (XEN)    [<ffff82c4801b5fca>] hvm_vcpu_has_pending_irq+0x4a/0x90
>> (XEN)    [<ffff82c4801c85c4>] vmx_intr_assist+0x54/0x290
>> (XEN)    [<ffff82c4801d2911>] nvmx_switch_guest+0x51/0x6c0
>> (XEN)    [<ffff82c4801d4256>] vmx_asm_do_vmentry+0x0/0xea
> -------------- next part --------------
> diff -r 4efc7f87d749 xen/arch/x86/mm/p2m.c
> --- a/xen/arch/x86/mm/p2m.c   Thu Feb 14 17:07:41 2013 +0000
> +++ b/xen/arch/x86/mm/p2m.c   Mon Feb 18 11:32:44 2013 +0000
> @@ -219,7 +219,7 @@ mfn_t __get_gfn_type_access(struct p2m_d
>     }
> 
>     /* For now only perform locking on hap domains */
Yeah, this is what I mean. For tree inclusion, the comment has to be updated as 
well.
Thanks
Andres
> -    if ( locked && (hap_enabled(p2m->domain)) )
> +    if ( locked )
>         /* Grab the lock here, don't release until put_gfn */
>         gfn_lock(p2m, gfn, 0);
> 
> @@ -248,8 +248,7 @@ mfn_t __get_gfn_type_access(struct p2m_d
> 
> void __put_gfn(struct p2m_domain *p2m, unsigned long gfn)
> {
> -    if ( !p2m || !paging_mode_translate(p2m->domain) 
> -              || !hap_enabled(p2m->domain) )
> +    if ( !p2m || !paging_mode_translate(p2m->domain) )
>         /* Nothing to do in this case */
>         return;
> 
> 
> ------------------------------
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel
> 
> 
> End of Xen-devel Digest, Vol 96, Issue 249
> ******************************************


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.