[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Xen 4.3 development update
At 16:23 +0100 on 04 Apr (1365092601), Tim Deegan wrote: > At 11:34 -0400 on 03 Apr (1364988853), Andres Lagar-Cavilla wrote: > > On Apr 3, 2013, at 6:53 AM, George Dunlap <george.dunlap@xxxxxxxxxxxxx> > > wrote: > Yes, 4.2 is definitely slower. A compile test on a 4-vcpu VM that takes > about 12 minutes before this locking change takes more than 20 minutes > on the current tip of xen-unstable (I gave up at 22 minutes and rebooted > to test something else). I did a bit of prodding at this, but messed up my measurements in a bunch of different ways over the afternoon. :( I'm going to be away from my test boxes for a couple of weeks now, so all I can say is, if you're investigating this bug, beware that: - the revision before this change still has the RTC bugs that were fixed last week, so don't measure performance based on guest wallclock time, or your 'before' perf will look too good. - the current unstable tip has test code to exercise the new map_domain_page(), which will badly affect all the many memory accesses done in HVM emulation, so make sure you use debug=n builds for measurement. Also, if there is still a bad slowdown, caused by the p2m lookups, this might help a little bit: diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index 38e87ce..7bd8646 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -1361,6 +1361,18 @@ int hvm_hap_nested_page_fault(paddr_t gpa, } } + + /* For the benefit of 32-bit WinXP (& older Windows) on AMD CPUs, + * a fast path for LAPIC accesses, skipping the p2m lookup. */ + if ( !nestedhvm_vcpu_in_guestmode(v) + && gfn == vlapic_base_address(vcpu_vlapic(current)) >> PAGE_SHIFT ) + { + if ( !handle_mmio() ) + hvm_inject_hw_exception(TRAP_gp_fault, 0); + rc = 1; + goto out; + } + p2m = p2m_get_hostp2m(v->domain); mfn = get_gfn_type_access(p2m, gfn, &p2mt, &p2ma, P2M_ALLOC | (access_w ? P2M_UNSHARE : 0), NULL); but in fact, the handle_mmio() will have to do GVA->GFN lookups for its %RIP and all its operands, and each of those will involve multiple GFN->MFN lookups for the pagetable entries, so if the GFN->MFN lookup has got slower, eliminating just the one at the start may not be all that great. Cheers, Tim. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |