From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [Xen-devel] [PATCH 1/4] xen/p2m: Optimize the get_phys_to_machine function a bit. Date: Mon, 9 Jul 2012 12:14:49 -0400 Message-ID: <20120709161448.GA17595@phenom.dumpdata.com> References: <1341330038-21686-1-git-send-email-konrad.wilk@oracle.com> <1341330038-21686-2-git-send-email-konrad.wilk@oracle.com> <4FFAFBA4.4050603@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <4FFAFBA4.4050603@citrix.com> Sender: linux-kernel-owner@vger.kernel.org To: David Vrabel Cc: xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org List-Id: xen-devel@lists.xenproject.org On Mon, Jul 09, 2012 at 04:41:24PM +0100, David Vrabel wrote: > On 03/07/12 16:40, Konrad Rzeszutek Wilk wrote: > > Running perf tells me that the check for p2m_identity > > is done a lot - more than it should. > > This patch doesn't change the how often the check is done. Is this just > bad wording of the description? Its bad wording plus it really does not change the assmebler code - I thought it did but since there is only one "if" case it does not matter how much I put unlikely in front of it - it is the only branch condition. Perhaps if I make the code be put in a variable (register) that would optimize this a bit more... > > > > Signed-off-by: Konrad Rzeszutek Wilk > > --- > > arch/x86/xen/p2m.c | 2 +- > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c > > index 64effdc..161bcdc 100644 > > --- a/arch/x86/xen/p2m.c > > +++ b/arch/x86/xen/p2m.c > > @@ -406,7 +406,7 @@ unsigned long get_phys_to_machine(unsigned long pfn) > > * and in p2m_*missing, so returning the INVALID_P2M_ENTRY > > * would be wrong. > > */ > > - if (p2m_top[topidx][mididx] == p2m_identity) > > + if (unlikely(p2m_top[topidx][mididx] == p2m_identity)) > > return IDENTITY_FRAME(pfn); > > > > return p2m_top[topidx][mididx][idx];