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

Re: [Xen-devel] Xen 4.3 development update

On 07/05/13 14:56, Pasi Kärkkäinen wrote:
On Mon, Apr 29, 2013 at 03:21:34PM +0200, Peter Maloney wrote:
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.

So is the problem only on WinXP with "booting up / logging in to windows",
or do you see performance regressions on some actual benchmark tools aswell
(after windows has started up) ?

For the sake of people watching this thread: The last 4-5 mails I've sent to Peter Maloney have bounced with "Mailbox Full" messages; so it's possible he's not actually hearing this part of the discussion...


Xen-devel mailing list



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