All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Brian Gerst <brgerst@gmail.com>
Cc: Christoph Lameter <cl@linux-foundation.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Jeremy Fitzhardinge <jeremy@goop.org>,
	Alexander van Heukelum <heukelum@mailshack.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/3] x86-64: Convert the PDA to percpu.
Date: Sat, 27 Dec 2008 16:53:39 +0100	[thread overview]
Message-ID: <20081227155339.GA17851@elte.hu> (raw)
In-Reply-To: <73c1f2160812270730w249eabb4labaa4fa3bc6a6ddd@mail.gmail.com>


* Brian Gerst <brgerst@gmail.com> wrote:

> On Sat, Dec 27, 2008 at 5:41 AM, Ingo Molnar <mingo@elte.hu> wrote:
> >
> > (Cc:-ed a few more people who might be interested in this)
> >
> > * Brian Gerst <brgerst@gmail.com> wrote:
> >
> >> This patch makes the PDA a normal per-cpu variable, allowing the
> >> removal of the special allocator code.  %gs still points to the
> >> base of the PDA.
> >>
> >> Tested on a dual-core AMD64 system.
> >>
> >> Signed-off-by: Brian Gerst <brgerst@gmail.com>
> >> ---
> >>  arch/x86/include/asm/pda.h     |    3 --
> >>  arch/x86/include/asm/percpu.h  |    3 --
> >>  arch/x86/include/asm/setup.h   |    1 -
> >>  arch/x86/kernel/cpu/common.c   |    6 ++--
> >>  arch/x86/kernel/dumpstack_64.c |    8 ++--
> >>  arch/x86/kernel/head64.c       |   23 +------------
> >>  arch/x86/kernel/irq.c          |    2 +-
> >>  arch/x86/kernel/nmi.c          |    2 +-
> >>  arch/x86/kernel/setup_percpu.c |   70 ++++++++--------------------------------
> >>  arch/x86/kernel/smpboot.c      |   58 +--------------------------------
> >>  arch/x86/xen/enlighten.c       |    2 +-
> >>  arch/x86/xen/smp.c             |   12 +------
> >>  12 files changed, 27 insertions(+), 163 deletions(-)
> >
> > the simplification factor is significant. I'm wondering, have you measured
> > the code size impact of this on say the defconfig x86 kernel? That will
> > generally tell us how much worse optimizations the compiler does under
> > this scheme.
> >
> >        Ingo
> >
> 
> Patch #1 by itself doesn't change how the PDA is accessed, only how it
> is allocated.  The text size goes down significantly with patch #1,
> but data goes up.  Changing the PDA to cacheline-aligned (1a) brings
> it back in line.
> 
>    text	   data	    bss	    dec	    hex	filename
> 7033648	1754476	 758508	9546632	 91ab88	vmlinux.0   (vanilla 2.6.28)
> 7029563	1758428	 758508	9546499	 91ab03	vmlinux.1   (with patch #1)
> 7029563	1754460	 758508	9542531	 919b83	vmlinux.1a  (with patch #1 cache align)
> 7036694	1758428	 758508	9553630	 91c6de	vmlinux.3   (with all three patches)
> 
> I think the first patch (with the alignment fix) is a clear win.  As for 
> the other patches, they add about 8 bytes per use of a PDA variable.  
> cpu_number is used 903 times in this compile, so this is likely the most 
> extreme example.  I have an idea to optimize this particular case 
> further that I'd like to look at which would lessen the impact.

curious, what idea is that?

	Ingo

  reply	other threads:[~2008-12-27 15:54 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-23 17:15 [PATCH 1/3] x86-64: Convert the PDA to percpu Brian Gerst
2008-12-23 17:15 ` [PATCH 2/3] x86-64: Unify x86_*_percpu() functions Brian Gerst
2008-12-23 17:15   ` [PATCH 3/3] x86-64: Move cpu number from PDA to per-cpu and consolidate with 32-bit Brian Gerst
2008-12-27 11:03   ` [PATCH 2/3] x86-64: Unify x86_*_percpu() functions Jeremy Fitzhardinge
2008-12-27 11:09     ` Ingo Molnar
2008-12-27 11:20       ` Jeremy Fitzhardinge
2008-12-27 10:41 ` [PATCH 1/3] x86-64: Convert the PDA to percpu Ingo Molnar
2008-12-27 15:30   ` Brian Gerst
2008-12-27 15:53     ` Ingo Molnar [this message]
2008-12-27 17:16       ` Brian Gerst

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20081227155339.GA17851@elte.hu \
    --to=mingo@elte.hu \
    --cc=brgerst@gmail.com \
    --cc=cl@linux-foundation.org \
    --cc=heukelum@mailshack.com \
    --cc=hpa@zytor.com \
    --cc=jeremy@goop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.