From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Egger Subject: Re: Re: [PATCH 4 of 4] Nested p2m: rework locking around nested-p2m flushes and updates Date: Fri, 24 Jun 2011 13:08:54 +0200 Message-ID: <4E047046.6090609@amd.com> References: <4E03570B.5000106@amd.com> <20110624104515.GZ17634@whitby.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20110624104515.GZ17634@whitby.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Tim Deegan Cc: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org On 06/24/11 12:45, Tim Deegan wrote: > At 17:08 +0200 on 23 Jun (1308848939), Christoph Egger wrote: >>> + /* If this p2m table has been flushed or recycled under our feet, >>> + * leave it alone. We'll pick up the right one as we try to >>> + * vmenter the guest. */ >>> + if ( p2m->cr3 == nhvm_vcpu_hostcr3(v) ) >>> + rv = set_p2m_entry(p2m, L2_gpa>> PAGE_SHIFT, >>> + page_to_mfn(maddr_to_page(L0_gpa)), >>> + 0 /*4K*/, p2mt, p2ma); >> >> The introduction of this check leads to this crash when the L2 guest >> initializes its third vcpu: > > D'oh! > > diff -r b40d4bcca0d7 xen/arch/x86/mm/hap/nested_hap.c > --- a/xen/arch/x86/mm/hap/nested_hap.c Fri Jun 24 11:16:53 2011 +0100 > +++ b/xen/arch/x86/mm/hap/nested_hap.c Fri Jun 24 11:43:30 2011 +0100 > @@ -100,7 +100,7 @@ nestedhap_fix_p2m(struct vcpu *v, struct > paddr_t L2_gpa, paddr_t L0_gpa, > p2m_type_t p2mt, p2m_access_t p2ma) > { > - int rv = 0; > + int rv = 1; > ASSERT(p2m); > ASSERT(p2m->set_entry); > Yes, that fixes the crash. > This is what comes of not being able to test things properly. Can you > describe your test setup for me? I'm having no luck getting > xen-on-debian-on-xen-on-debian to work. That should do it. If your problem is that the L1 Dom0 hangs at boot then disable the TSC Deadline Timer in libxc/xc_cpuid_x86.c. This feature is broken since its introduction. Christoph -- ---to satisfy European Law for business letters: Advanced Micro Devices GmbH Einsteinring 24, 85689 Dornach b. Muenchen Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen Registergericht Muenchen, HRB Nr. 43632