linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>
To: tglx@linutronix.de, peterz@infradead.org, paulmck@linux.vnet.ibm.com
Cc: rusty@rustcorp.com.au, mingo@kernel.org, yong.zhang0@gmail.com,
	akpm@linux-foundation.org, vatsa@linux.vnet.ibm.com, rjw@sisk.pl,
	linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org,
	srivatsa.bhat@linux.vnet.ibm.com, nikunj@linux.vnet.ibm.com
Subject: [PATCH 00/27] Generic framework for SMP booting/CPU hotplug related code
Date: Fri, 01 Jun 2012 14:40:03 +0530	[thread overview]
Message-ID: <20120601090952.31979.24799.stgit@srivatsabhat.in.ibm.com> (raw)

This patchset is an effort to reduce the SMP booting/CPU hotplug related code
duplication in various architectures and pull them out into core code.
Consolidating the code at one place makes it more maintainable and less
error-prone.

There is still a lot of opportunity to pull out more stuff from the arch/
directories into core code than what this patchset does, but this does the
ground-work on top of which we can make more and more code generic.

This applies on top of tip tree's smp/hotplug branch + Yong's ipi_call_lock
cleanup patches[1].

The patch descriptions of some of the arch/ patches contain a section called
"Notes" which documents some of the non-trivial changes implemented in that
patch. This section is to help bring maintainer attention to those code
pieces so that if its wrong for that arch, they can point it out and I'll
work on fixing it.


Acknowledgements:
----------------

Thanks a lot to Paul McKenney for his guidance and for consolidating a
comprehensive list of what needs to be done to make CPU Hotplug better [2]
and [3]. Many thanks to Peter Zijlstra for complaining about the code
duplication in various architectures and pointing out what is missing and
what needs to be worked on.

Also, many thanks to Thomas Gleixner for his initiative to make smp booting
generic and sane, and for his whole bunch of cleanups in that direction.
I hope this patchset can contribute to that effort :-)

References:
[1]. http://marc.info/?l=linux-kernel&m=133827595625509&w=2
[2]. https://lkml.org/lkml/2012/4/9/198
[3]. https://lkml.org/lkml/2012/4/5/379
--
 Nikunj A. Dadhania (9):
      um, smpboot: Use generic SMP booting infrastructure
      sparc64, smpboot: Use generic SMP booting infrastructure
      blackfin, smpboot: Use generic SMP booting infrastructure
      powerpc, smpboot: Use generic SMP booting infrastructure
      mn10300, smpboot: Use generic SMP booting infrastructure
      ia64, smpboot: Use generic SMP booting infrastructure
      hexagon, smpboot: Use generic SMP booting infrastructure
      x86, smpboot: Use generic SMP booting infrastructure
      smpboot: Provide a generic method to boot secondary processors

Srivatsa S. Bhat (18):
      alpha, smpboot: Use generic SMP booting infrastructure
      arm, smpboot: Use generic SMP booting infrastructure
      s390, smpboot: Use generic SMP booting infrastructure
      parisc, smpboot: Use generic SMP booting infrastructure
      cris, smpboot: Use generic SMP booting infrastructure
      sparc32, smpboot: Use generic SMP booting infrastructure
      mn10300: Fix horrible logic in smp_prepare_cpus()
      ia64: Move holding of vector_lock to __setup_vector_irq()
      tile, smpboot: Use generic SMP booting infrastructure
      sh, smpboot: Use generic SMP booting infrastructure
      mips, smpboot: Use generic SMP booting infrastructure
      m32r, smpboot: Use generic SMP booting infrastructure
      m32r: Fix horrible logic in smp_prepare_cpus()
      xen, smpboot: Use generic SMP booting infrastructure
      xen, cpu hotplug: Don't call cpu_bringup() in xen_play_dead()
      smpboot, x86, xen: Determine smp booting implementations at run-time
      smpboot: Define and use cpu_state per-cpu variable in generic code
      smpboot: Add provisions for arch-specific locking around cpu_online_mask


  arch/alpha/kernel/smp.c           |   27 ++++++-----
 arch/arm/kernel/smp.c             |   26 +++++------
 arch/blackfin/mach-bf561/smp.c    |    1 
 arch/blackfin/mach-common/smp.c   |   16 ++++---
 arch/cris/arch-v32/kernel/smp.c   |   14 ++----
 arch/hexagon/kernel/smp.c         |   18 +++----
 arch/ia64/include/asm/cpu.h       |    2 -
 arch/ia64/kernel/irq_ia64.c       |   21 ++++++++-
 arch/ia64/kernel/process.c        |    1 
 arch/ia64/kernel/smpboot.c        |   46 +++++++++----------
 arch/m32r/kernel/smpboot.c        |   50 ++++++++++----------
 arch/mips/cavium-octeon/smp.c     |    4 --
 arch/mips/kernel/smp-cmp.c        |    8 ++-
 arch/mips/kernel/smp-mt.c         |    2 -
 arch/mips/kernel/smp.c            |   23 ++++++---
 arch/mips/kernel/sync-r4k.c       |    3 +
 arch/mn10300/kernel/smp.c         |   36 +++++----------
 arch/parisc/kernel/smp.c          |   30 ++++++------
 arch/powerpc/kernel/smp.c         |   32 +++++++------
 arch/s390/kernel/smp.c            |   12 ++---
 arch/sh/include/asm/smp.h         |    2 -
 arch/sh/kernel/smp.c              |   23 ++++-----
 arch/sparc/kernel/hvtramp.S       |    1 
 arch/sparc/kernel/leon_smp.c      |   25 ++++++----
 arch/sparc/kernel/smp_64.c        |   18 ++++---
 arch/sparc/kernel/sun4d_smp.c     |   26 +++++------
 arch/sparc/kernel/sun4m_smp.c     |   26 ++++++-----
 arch/sparc/kernel/trampoline_32.S |    1 
 arch/sparc/kernel/trampoline_64.S |    1 
 arch/tile/kernel/smpboot.c        |   26 ++++-------
 arch/um/kernel/smp.c              |   12 +++--
 arch/x86/include/asm/cpu.h        |    2 -
 arch/x86/include/asm/smp.h        |   25 ++++++++++
 arch/x86/kernel/apic/io_apic.c    |   15 ++++++
 arch/x86/kernel/smp.c             |    4 ++
 arch/x86/kernel/smpboot.c         |   43 ++++++-----------
 arch/x86/xen/smp.c                |   30 ++----------
 include/linux/smpboot.h           |   11 ++++
 kernel/smpboot.c                  |   91 +++++++++++++++++++++++++++++++++++++
 kernel/smpboot.h                  |    4 +-
 40 files changed, 437 insertions(+), 321 deletions(-)
 create mode 100644 include/linux/smpboot.h



Thanks,
Srivatsa S. Bhat
IBM Linux Technology Center


             reply	other threads:[~2012-06-01  9:10 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-01  9:10 Srivatsa S. Bhat [this message]
2012-06-01  9:10 ` [PATCH 01/27] smpboot: Provide a generic method to boot secondary processors Srivatsa S. Bhat
2012-06-01 12:09   ` Srivatsa S. Bhat
2012-06-03  8:51     ` Yong Zhang
2012-06-03 11:22       ` Srivatsa S. Bhat
2012-06-04  2:18         ` Yong Zhang
2012-06-03  8:53     ` Yong Zhang
2012-06-03 11:33       ` Srivatsa S. Bhat
2012-06-03 11:39         ` Russell King - ARM Linux
2012-06-03 12:05           ` Srivatsa S. Bhat
2012-06-01 16:51   ` Sam Ravnborg
2012-06-01 22:29     ` Srivatsa S. Bhat
2012-06-04 10:32       ` Thomas Gleixner
2012-06-04 13:07         ` Srivatsa S. Bhat
2012-06-04 13:18           ` Thomas Gleixner
2012-06-04 16:53             ` Srivatsa S. Bhat
2012-06-05  5:11           ` Yong Zhang
2012-06-05  6:07             ` Srivatsa S. Bhat
2012-06-01 16:53   ` Sam Ravnborg
2012-06-01 22:41     ` Srivatsa S. Bhat
2012-06-02 15:16       ` Sam Ravnborg
2012-06-02 15:34         ` Srivatsa S. Bhat
2012-06-01  9:10 ` [PATCH 02/27] smpboot: Add provisions for arch-specific locking around cpu_online_mask Srivatsa S. Bhat
2012-06-01 12:12   ` Srivatsa S. Bhat
2012-06-01  9:11 ` [PATCH 04/27] smpboot, x86, xen: Determine smp booting implementations at run-time Srivatsa S. Bhat
2012-06-01  9:11 ` [PATCH 05/27] xen, cpu hotplug: Don't call cpu_bringup() in xen_play_dead() Srivatsa S. Bhat
2012-06-01 12:59   ` [Xen-devel] " Jan Beulich
2012-06-01 15:13     ` Srivatsa S. Bhat
2012-06-01 15:36       ` Jan Beulich
2012-06-02 18:06         ` Srivatsa S. Bhat
2012-06-05 16:49           ` Konrad Rzeszutek Wilk
2012-06-05 17:36             ` Srivatsa S. Bhat
2012-06-05 17:40           ` Thomas Gleixner
2012-06-05 17:48             ` Srivatsa S. Bhat
2012-06-01  9:11 ` [PATCH 06/27] xen, smpboot: Use generic SMP booting infrastructure Srivatsa S. Bhat
2012-06-01  9:11 ` [PATCH 07/27] x86, " Srivatsa S. Bhat
2012-06-04 14:29   ` Thomas Gleixner
2012-06-04 17:00     ` Srivatsa S. Bhat
2012-06-01  9:12 ` [PATCH 08/27] m32r: Fix horrible logic in smp_prepare_cpus() Srivatsa S. Bhat
2012-06-01  9:12 ` [PATCH 09/27] m32r, smpboot: Use generic SMP booting infrastructure Srivatsa S. Bhat
2012-06-01  9:12 ` [PATCH 10/27] mips, " Srivatsa S. Bhat
2012-06-03  8:25   ` Yong Zhang
2012-06-03 11:48     ` Srivatsa S. Bhat
2012-06-04  2:17       ` Yong Zhang
2012-06-01  9:12 ` [PATCH 11/27] sh, " Srivatsa S. Bhat
2012-06-01  9:12 ` [PATCH 12/27] tile, " Srivatsa S. Bhat
2012-06-01 18:07   ` Chris Metcalf
2012-06-01  9:13 ` [PATCH 13/27] hexagon, " Srivatsa S. Bhat
2012-06-01  9:13 ` [PATCH 14/27] ia64: Move holding of vector_lock to __setup_vector_irq() Srivatsa S. Bhat
2012-06-01  9:13 ` [PATCH 15/27] ia64, smpboot: Use generic SMP booting infrastructure Srivatsa S. Bhat
2012-06-01  9:13 ` [PATCH 16/27] mn10300: Fix horrible logic in smp_prepare_cpus() Srivatsa S. Bhat
2012-06-01  9:14 ` [PATCH 17/27] mn10300, smpboot: Use generic SMP booting infrastructure Srivatsa S. Bhat
2012-06-03  8:33   ` Yong Zhang
2012-06-03 11:50     ` Srivatsa S. Bhat
2012-06-01  9:14 ` [PATCH 18/27] powerpc, " Srivatsa S. Bhat
2012-06-02  6:14   ` Paul Mackerras
2012-06-01  9:14 ` [PATCH 19/27] blackfin, " Srivatsa S. Bhat
2012-06-01  9:14 ` [PATCH 20/27] sparc64, " Srivatsa S. Bhat
2012-06-01 17:55   ` David Miller
2012-06-01 22:44     ` [UPDATED PATCH " Srivatsa S. Bhat
2012-06-01 22:52       ` David Miller
2012-06-01  9:15 ` [PATCH 21/27] sparc32, " Srivatsa S. Bhat
2012-06-01 17:56   ` David Miller
2012-06-01 18:54     ` Sam Ravnborg
2012-06-01 22:47       ` [UPDATED PATCH " Srivatsa S. Bhat
2012-06-01 22:53         ` David Miller
2012-06-01 23:17           ` Srivatsa S. Bhat
2012-06-02  6:52         ` Sam Ravnborg
2012-06-02  7:44           ` Sam Ravnborg
2012-06-02  8:01             ` Srivatsa S. Bhat
2012-06-02  8:14               ` Srivatsa S. Bhat
2012-06-02 15:13               ` Sam Ravnborg
2012-06-02 15:58                 ` Srivatsa S. Bhat
2012-06-02 16:23                   ` Sam Ravnborg
2012-06-02 16:34                     ` Srivatsa S. Bhat
2012-06-03 21:17                       ` [PATCH] sparc32: refactor smp boot Sam Ravnborg
2012-06-04  1:04                         ` David Miller
2012-06-04  6:48                         ` Srivatsa S. Bhat
2012-06-01  9:15 ` [PATCH 22/27] um, smpboot: Use generic SMP booting infrastructure Srivatsa S. Bhat
2012-06-01  9:15 ` [PATCH 23/27] cris, " Srivatsa S. Bhat
2012-06-03  8:41   ` Yong Zhang
2012-06-03 11:52     ` Srivatsa S. Bhat
2012-06-01  9:15 ` [PATCH 24/27] parisc, " Srivatsa S. Bhat
2012-06-01  9:16 ` [PATCH 25/27] s390, " Srivatsa S. Bhat
2012-06-01 10:45   ` Heiko Carstens
2012-06-01  9:16 ` [PATCH 26/27] arm, " Srivatsa S. Bhat
2012-06-01 11:04   ` Russell King - ARM Linux
2012-06-01  9:16 ` [PATCH 27/27] alpha, " Srivatsa S. Bhat
     [not found] ` <20120601091038.31979.67878.stgit@srivatsabhat.in.ibm.com>
2012-06-01 12:19   ` [PATCH 03/27] smpboot: Define and use cpu_state per-cpu variable in generic code Srivatsa S. Bhat
2012-06-01 12:25     ` Russell King - ARM Linux
2012-06-01 12:55       ` Srivatsa S. Bhat

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=20120601090952.31979.24799.stgit@srivatsabhat.in.ibm.com \
    --to=srivatsa.bhat@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=nikunj@linux.vnet.ibm.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=peterz@infradead.org \
    --cc=rjw@sisk.pl \
    --cc=rusty@rustcorp.com.au \
    --cc=tglx@linutronix.de \
    --cc=vatsa@linux.vnet.ibm.com \
    --cc=yong.zhang0@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).