[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Xen 4.3 development update
On 04/04/2013 07:05 PM, Tim Deegan wrote: > 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); This patch (applied to 4.2.2) has a very large improvement on my box (AMD FX-8150) and WinXP 32 bit. It only took about 2.5 minutes to log in and see task manager. It takes about 6 minutes without the patch. And 2.5 minutes is still terrible, but obviously better. > > 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 |