[PATCH 0/8] reworked support for pSeries dynamic reconfiguration (v2)

Nathan Lynch ntl at pobox.com
Tue Mar 15 13:49:23 EST 2005


Thanks to those who gave feedback on the previous submission of this
patch series.  I've noted the changes I've made in the changelogs of
the individual patch mails to follow.

This patch series reworks existing ppc64 architecture support for the
"dynamic reconfiguration" option of RPA platforms.  This includes PCI
hotplug and dynamic logical partitioning (DLPAR).  This was all
motivated by my desire to add code for better handling of processor
addition and removal, but I didn't want to just add to the growing
mess in prom.c where we have duplicated code for boot and
DLPAR/hotplug.

This adds very little new function, but gets rid of much duplicated
code and introduces a new pSeries-specific file, pSeries_reconfig.c,
which contains the core support for dynamic reconfiguration and
implements a more refined version of the notifier chain API I posted a
few weeks ago.  Code that needs to act upon device nodes that are
being added or removed can register with this notifier chain.  I've
ported as much code as possible to that API, and I expect memory DLPAR
will want to use it too.

The last couple of patches in the series modify the pSeries smp code
so that we properly manage cpu_present_map with respect to DLPAR, and
includes the "make cpu hotplug play well with maxcpus and smt-enabled"
patch, which depends on this.

The following cases have been tested on a Power5 system:
* CPU add/remove
* Virtual I/O adapter add/remove
* Logical slot add/remove (thanks to John Rose)

I also checked the build against all defconfigs in arch/ppc64/configs.

diffstat for the combined series:

 arch/ppc64/kernel/Makefile           |    2
 arch/ppc64/kernel/pSeries_iommu.c    |   25
 arch/ppc64/kernel/pSeries_reconfig.c |  434 +++++++++++++
 arch/ppc64/kernel/pSeries_smp.c      |  231 +++++--
 arch/ppc64/kernel/pci_dn.c           |   22
 arch/ppc64/kernel/proc_ppc64.c       |  249 -------
 arch/ppc64/kernel/prom.c             |  474 ++++-----------
 arch/ppc64/kernel/setup.c            |   12
 arch/ppc64/kernel/smp.c              |   13
 include/asm-ppc64/machdep.h          |    1
 include/asm-ppc64/pSeries_reconfig.h |   25
 include/asm-ppc64/prom.h             |    4
 12 files changed, 827 insertions(+), 665 deletions(-)

Thanks,
Nathan



More information about the Linuxppc64-dev mailing list