All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tejun Heo <tj@kernel.org>
To: ebiederm@xmission.com, cl@linux-foundation.org,
	rusty@rustcorp.com.au, mingo@elte.hu, travis@sgi.com,
	linux-kernel@vger.kernel.org, hpa@zytor.com,
	akpm@linux-foundation.org, steiner@sgi.com, hugh@veritas.com
Subject: [PATCHSET linux-2.6-x86:tip] x86: make percpu offsets zero-based on SMP
Date: Tue, 13 Jan 2009 19:38:04 +0900	[thread overview]
Message-ID: <1231843097-18003-1-git-send-email-tj@kernel.org> (raw)

Hello,

This patchset is re-hash of Mike Travis' original work on zero-based
percpu offsets.  I couldn't get the original patches working (where is
the linker script changes other than the PHDR addition?) and ended up
doing a quite similar series of patches.  A lot of this patch series
was copied verbatim from or got a lot of hints from Mike Travis'
original patches.  Some differences are...

* better splitted - one thing at a time.

* how the pda is allocated at the head.  this patch uses preallocation
  directly from linker script as it's something arch specific anyway.

* pda ops are wrappers around x86 percpu ops.

* x86-32 SMP is also converted to zero-based offsets, so we should be
  able to do cpualloc (or whatever) for both subarchs.

This patchset contains the following thirteen patches.

  0001-x86_64-fix-pda_to_op.patch
  0002-x86-make-early_per_cpu-a-lvalue-and-use-it.patch
  0003-x86_64-Cleanup-early-setup_percpu-references.patch
  0004-x86_32-make-vmlinux_32.lds.S-use-PERCPU-macro.patch
  0005-x86_64-make-percpu-symbols-zerobased-on-SMP.patch
  0006-x86_64-load-pointer-to-pda-into-gs-while-brining-u.patch
  0007-x86_64-use-static-_cpu_pda-array.patch
  0008-x86_64-fold-pda-into-percpu-area-on-SMP.patch
  0009-x86_64-merge-64-and-32-SMP-percpu-handling.patch
  0010-x86_64-make-pda-a-percpu-variable.patch
  0011-x86_64-convert-pda-ops-to-wrappers-around-x86-percp.patch
  0012-x86_64-misc-clean-up-after-the-percpu-update.patch
  0013-x86_32-make-percpu-symbols-zerobased-on-SMP.patch

0001-0004 prepares for coming changes.  0005 converts x86_64 SMP
percpu to zero based offset.  0006-0007 preps for percpu/pda
simplification.  0008-0012 unifies percpu and pda handling
step-by-step.  0013 converts x86_32 SMP percpu to zer based offset.

Each step was tested with gcc-4.1.3, 4.2.3 and 4.3.1 on x86_64, 4.3.1
on i386 for both SMP and UP configurations.  The final state is
currently being tested using 4.2.3 on both x86_64 and 32.

This patchset is on top of the current linux-2.6-x86:tip[1] and also
available in the following git tree.

  http://git.kernel.org/?p=linux/kernel/git/tj/misc.git;a=shortlog;h=x86-percpu-zerobased
  git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git x86-percpu-zerobased

 arch/x86/include/asm/pda.h          |   97 ++--------------------
 arch/x86/include/asm/percpu.h       |  137 ++++++++++++-------------------
 arch/x86/include/asm/setup.h        |    1 
 arch/x86/include/asm/smp.h          |    2 
 arch/x86/include/asm/topology.h     |    5 -
 arch/x86/include/asm/trampoline.h   |    1 
 arch/x86/kernel/acpi/sleep.c        |    1 
 arch/x86/kernel/apic.c              |   13 ---
 arch/x86/kernel/asm-offsets_64.c    |    2 
 arch/x86/kernel/cpu/common.c        |   17 ++-
 arch/x86/kernel/entry_64.S          |    7 -
 arch/x86/kernel/head64.c            |   23 -----
 arch/x86/kernel/head_32.S           |   37 +++++++-
 arch/x86/kernel/head_64.S           |   47 +++++++++-
 arch/x86/kernel/setup_percpu.c      |  156 +++++++++++++++++++-----------------
 arch/x86/kernel/smpboot.c           |   61 --------------
 arch/x86/kernel/smpcommon.c         |    3 
 arch/x86/kernel/vmlinux_32.lds.S    |   23 +++--
 arch/x86/kernel/vmlinux_64.lds.S    |   22 ++++-
 arch/x86/kernel/x8664_ksyms_64.c    |    2 
 arch/x86/mach-voyager/voyager_smp.c |    2 
 arch/x86/xen/enlighten.c            |    2 
 arch/x86/xen/smp.c                  |   10 --
 include/asm-generic/sections.h      |    2 
 include/asm-generic/vmlinux.lds.h   |   74 +++++++++++++++--
 25 files changed, 353 insertions(+), 394 deletions(-)

Thanks.

--
tejun

[1] c69feb89654622a77c5a8d8e5b20e3dbe0a7a92b

             reply	other threads:[~2009-01-13 10:43 UTC|newest]

Thread overview: 113+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-13 10:38 Tejun Heo [this message]
2009-01-13 10:38 ` [PATCH 01/13] x86_64: fix pda_to_op() Tejun Heo
2009-01-13 10:38 ` [PATCH 02/13] x86: make early_per_cpu() a lvalue and use it Tejun Heo
2009-01-13 11:43   ` [PATCH 02/13 UPDATED] " Tejun Heo
2009-01-13 10:38 ` [PATCH 03/13] x86_64: Cleanup early setup_percpu references Tejun Heo
2009-01-13 10:38 ` [PATCH 04/13] x86_32: make vmlinux_32.lds.S use PERCPU() macro Tejun Heo
2009-01-13 10:38 ` [PATCH 05/13] x86_64: make percpu symbols zerobased on SMP Tejun Heo
2009-01-13 10:38 ` [PATCH 06/13] x86_64: load pointer to pda into %gs while brining up a CPU Tejun Heo
2009-01-13 10:38 ` [PATCH 07/13] x86_64: use static _cpu_pda array Tejun Heo
2009-01-13 10:38 ` [PATCH 08/13] x86_64: fold pda into percpu area on SMP Tejun Heo
2009-01-13 10:38 ` [PATCH 09/13] x86_64: merge 64 and 32 SMP percpu handling Tejun Heo
2009-01-13 10:38 ` [PATCH 10/13] x86_64: make pda a percpu variable Tejun Heo
2009-01-13 10:38 ` [PATCH 11/13] x86_64: convert pda ops to wrappers around x86 percpu accessors Tejun Heo
2009-01-13 10:38 ` [PATCH 12/13] x86_64: misc clean up after the percpu update Tejun Heo
2009-01-13 10:38 ` [PATCH 13/13] x86_32: make percpu symbols zerobased on SMP Tejun Heo
2009-01-14  0:18   ` Rusty Russell
2009-01-14  2:03     ` Tejun Heo
2009-01-13 10:48 ` [PATCHSET linux-2.6-x86:tip] x86: make percpu offsets zero-based " Tejun Heo
2009-01-13 13:27   ` Brian Gerst
2009-01-13 14:05     ` Tejun Heo
2009-01-13 14:26       ` Brian Gerst
2009-01-13 14:37         ` Tejun Heo
2009-01-14  6:57       ` H. Peter Anvin
2009-01-14  9:38         ` [patch] add optimized generic percpu accessors Ingo Molnar
2009-01-14  9:45           ` Ingo Molnar
2009-01-15 10:04           ` roel kluin
2009-01-15 10:26             ` Tejun Heo
2009-01-15 11:32               ` Ingo Molnar
2009-01-15 11:36                 ` Tejun Heo
2009-01-15 12:22                   ` Ingo Molnar
2009-01-15 13:09                     ` Tejun Heo
2009-01-15 13:32                       ` Ingo Molnar
2009-01-15 13:33                         ` Ingo Molnar
2009-01-15 13:39                         ` Ingo Molnar
2009-01-15 21:54                           ` Tejun Heo
2009-01-16  1:28                             ` [PATCH x86/percpu] x86: fix build bug introduced during merge Tejun Heo
2009-01-16  3:25                               ` [PATCH x86/percpu] x86_64: initialize this_cpu_off to __per_cpu_load Tejun Heo
2009-01-16 13:16                                 ` Ingo Molnar
2009-01-16 13:47                                   ` Tejun Heo
     [not found]                                     ` <20090116221651.GA32736@elte.hu>
     [not found]                                       ` <20090116223828.GA9294@elte.hu>
     [not found]                                         ` <49716F0E.7060605@gmail.com>
     [not found]                                           ` <49716FBF.7080203@kernel.org>
2009-01-17  6:29                                             ` [PATCH core/percpu REPOST] linker script: add missing VMLINUX_SYMBOL Tejun Heo
2009-01-17  6:32                                               ` [PATCH] linker script: add missing .data.percpu.page_aligned Tejun Heo
2009-01-17  8:21                                                 ` Ingo Molnar
2009-01-21 23:46                                                 ` Christoph Lameter
2009-01-21 23:45                                               ` [PATCH core/percpu REPOST] linker script: add missing VMLINUX_SYMBOL Christoph Lameter
2009-01-15 22:34                           ` [patch] add optimized generic percpu accessors Ingo Molnar
2009-01-15 20:31                     ` Christoph Lameter
2009-01-16  9:41                       ` Tejun Heo
2009-01-16 13:23                         ` Ingo Molnar
2009-01-16 13:49                           ` Tejun Heo
2009-01-15 10:26           ` Tejun Heo
2009-01-15 11:30             ` Ingo Molnar
2009-01-15 11:38               ` Tejun Heo
2009-01-15 12:26                 ` Ingo Molnar
2009-01-15 13:04                   ` Tejun Heo
2009-01-15 13:07                     ` Ingo Molnar
2009-01-15 13:23                       ` [PATCH] percpu: " Tejun Heo
2009-01-15 13:36                         ` Ingo Molnar
2009-01-15 17:30                         ` Andrew Morton
2009-01-15 18:02                           ` Ingo Molnar
2009-01-15 18:34                             ` Andrew Morton
2009-01-15 18:39                               ` Ingo Molnar
2009-01-15 21:53                                 ` Tejun Heo
2009-01-16  0:12                                 ` Herbert Xu
2009-01-16  0:15                                   ` Ingo Molnar
2009-01-16  0:18                                     ` Herbert Xu
     [not found]                                       ` <200901170827.33729.rusty@rustcorp.com.au>
2009-01-16 22:08                                         ` Ingo Molnar
     [not found]                                           ` <200901201328.24605.rusty@rustcorp.com.au>
2009-01-20  6:25                                             ` Tejun Heo
2009-01-20 10:36                                               ` Ingo Molnar
     [not found]                                               ` <200901271213.18605.rusty@rustcorp.com.au>
2009-01-27  2:24                                                 ` Tejun Heo
2009-01-27 13:13                                                   ` Ingo Molnar
2009-01-27 23:07                                                     ` Tejun Heo
2009-01-28  3:36                                                       ` Tejun Heo
2009-01-28  8:12                                                         ` Tejun Heo
2009-01-27 20:08                                                   ` Christoph Lameter
2009-01-27 21:47                                                     ` David Miller
2009-01-27 22:47                                                       ` Rick Jones
2009-01-27 22:47                                                         ` Rick Jones
2009-01-28  0:17                                                         ` Luck, Tony
2009-01-28  0:17                                                           ` Luck, Tony
2009-01-28 16:48                                                           ` Christoph Lameter
2009-01-28 16:48                                                             ` Christoph Lameter
2009-01-28 17:15                                                             ` Luck, Tony
2009-01-28 17:15                                                               ` Luck, Tony
2009-01-28 16:45                                                       ` Christoph Lameter
2009-01-28 20:47                                                         ` David Miller
2009-01-28 10:38                                                   ` Rusty Russell
2009-01-28 10:56                                                     ` Tejun Heo
2009-01-29  2:06                                                       ` Rusty Russell
2009-01-31  6:11                                                         ` Tejun Heo
2009-01-28 16:50                                                     ` Christoph Lameter
2009-01-28 18:07                                                       ` Mathieu Desnoyers
2009-01-29 18:33                                                         ` Christoph Lameter
2009-01-29 18:48                                                           ` H. Peter Anvin
2009-01-20 10:40                                             ` Ingo Molnar
2009-01-21  5:52                                               ` Tejun Heo
2009-01-21 10:05                                                 ` Ingo Molnar
2009-01-21 11:21                                                 ` Eric W. Biederman
2009-01-21 12:45                                                   ` Stephen Hemminger
2009-01-21 14:13                                                     ` Eric W. Biederman
2009-01-21 20:34                                                     ` David Miller
2009-01-16  1:09                                     ` H. Peter Anvin
     [not found]                                   ` <200901170804.18622.rusty@rustcorp.com.au>
2009-01-16 21:59                                     ` Ingo Molnar
2009-01-16 22:09                                     ` Ingo Molnar
2009-01-16 14:10                               ` Mark Lord
2009-01-15 18:46                         ` Ingo Molnar
2009-01-31 10:36                         ` Jeremy Fitzhardinge
2009-01-15 13:59                     ` [patch] " roel kluin
2009-01-15 21:51                       ` Tejun Heo
     [not found]                 ` <200901170748.53734.rusty@rustcorp.com.au>
2009-01-16 21:24                   ` Ingo Molnar
     [not found]           ` <200901151253.44016.rusty@rustcorp.com.au>
2009-01-15  9:55             ` Ingo Molnar
2009-01-15 10:27             ` Tejun Heo
2009-01-31 10:30           ` Jeremy Fitzhardinge
2009-01-31 16:00             ` Ingo Molnar

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=1231843097-18003-1-git-send-email-tj@kernel.org \
    --to=tj@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=cl@linux-foundation.org \
    --cc=ebiederm@xmission.com \
    --cc=hpa@zytor.com \
    --cc=hugh@veritas.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=rusty@rustcorp.com.au \
    --cc=steiner@sgi.com \
    --cc=travis@sgi.com \
    /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.