|
[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 |