WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Re: lmbench lat_mmap slowdown with CONFIG_PARAVIRT

To: Zachary Amsden <zach@xxxxxxxxxx>
Subject: [Xen-devel] Re: lmbench lat_mmap slowdown with CONFIG_PARAVIRT
From: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Date: Thu, 22 Jan 2009 14:44:22 -0800
Cc: Nick Piggin <npiggin@xxxxxxx>, Jeremy Fitzhardinge <jeremy@xxxxxxxx>, Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>, "jeremy@xxxxxxxxxxxxx" <jeremy@xxxxxxxxxxxxx>, "rusty@xxxxxxxxxxxxxxx" <rusty@xxxxxxxxxxxxxxx>, Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx>, "chrisw@xxxxxxxxxxxx" <chrisw@xxxxxxxxxxxx>, "hpa@xxxxxxxxx" <hpa@xxxxxxxxx>, Ingo Molnar <mingo@xxxxxxx>, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 22 Jan 2009 14:44:58 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1232663311.16317.176.camel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <20090120110542.GE19505@xxxxxxxxxxxxx> <20090120112634.GA20858@xxxxxxx> <20090120140324.GA26424@xxxxxxx> <49763806.5090009@xxxxxxxx> <20090120205653.GA19710@xxxxxxx> <20090121072718.GN24891@xxxxxxxxxxxxx> <4977A051.8050203@xxxxxxxx> <1232663311.16317.176.camel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 2.0.0.19 (X11/20090105)
Zachary Amsden wrote:
These fragments, from native_pgd_val, certainly don't help:

c0120f60:       55                      push   %ebp
c0120f61:       89 e5                   mov    %esp,%ebp
c0120f63:       5d                      pop    %ebp
c0120f64:       c3                      ret
c0120f65:       8d 74 26 00             lea    0x0(%esi,%eiz,1),%esi
c0120f69:       8d bc 27 00 00 00 00    lea    0x0(%edi,%eiz,1),%edi
Yes, that's a rather awful noop; compiling without frame pointers 
reduces this to a single "ret".
That is really disgusting.  We absolutely should be patching away the
function calls here in the native case.. not sure we do that today.
I did have some patches to do that at one point.  If you set pgd_val = 
paravirt_nop, then the patching machinery will completely nop out the 
call site.  The problem is that it depends on the calling convention 
using the same regs for the first arg and return - true for 32-bit, but 
not 64.  We could fix that with identity functions which the patcher 
recognizes and can replace with either pure nops or inline appropriate 
register moves.
Also, I just posted patches to get rid of all pvops calls when fetching 
or setting flags in a pte, which I hope will help.
   J

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>