linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/13] NUMA CPU Reconfiguration using PRRN
@ 2013-04-24 15:34 Nathan Fontenot
  2013-04-24 15:47 ` [PATCH v4 1/13] Expose pseries devicetree_update() Nathan Fontenot
                   ` (12 more replies)
  0 siblings, 13 replies; 16+ messages in thread
From: Nathan Fontenot @ 2013-04-24 15:34 UTC (permalink / raw)
  To: linuxppc-dev

Newer firmware on Power systems can transparently reassign platform resources
(CPU and Memory) in use. For instance, if a processor or memory unit is
predicted to fail, the platform may transparently move the processing to an
equivalent unused processor or the memory state to an equivalent unused
memory unit. However, reassigning resources across NUMA boundaries may alter
the performance of the partition. When such reassignment is necessary, the
Platform Resource Reassignment Notification (PRRN) option provides a
mechanism to inform the Linux kernel of changes to the NUMA affinity of
its platform resources.

PRRN Events are RTAS events sent up through the event-scan mechanism on
Power. When these events are received the system needs can get the updated
device tree affinity information for the affected CPUs/memory via the
rtas update-nodes and update-properties calls. This information is then
used to update the NUMA affinity of the CPUs/Memory in the kernel.

This patch set adds the ability to recognize PRRN events, update the device
tree and kernel information for CPUs (memory will be handled in a later
patch), and add an interface to enable/disable toplogy updates from /proc.

Additionally, these updates solve an existing problem with the VPHN (Virtual
Processor Home Node) capability and allow us to re-enable this feature.

Nathan Fontenot

 arch/powerpc/include/asm/firmware.h               |    7 
 arch/powerpc/include/asm/prom.h                   |   46 ++--
 arch/powerpc/include/asm/rtas.h                   |    2 
 arch/powerpc/kernel/prom_init.c                   |   98 ++--------
 arch/powerpc/kernel/rtasd.c                       |   46 ++++
 arch/powerpc/mm/numa.c                            |  214 +++++++++++++++-------
 arch/powerpc/platforms/pseries/firmware.c         |   50 ++++-
 arch/powerpc/platforms/pseries/mobility.c         |   21 +-
 powerpc/arch/powerpc/include/asm/firmware.h       |    1 
 powerpc/arch/powerpc/include/asm/prom.h           |   71 +++++++
 powerpc/arch/powerpc/include/asm/rtas.h           |    4 
 powerpc/arch/powerpc/include/asm/topology.h       |    5 
 powerpc/arch/powerpc/kernel/prom_init.c           |    2 
 powerpc/arch/powerpc/kernel/rtasd.c               |    7 
 powerpc/arch/powerpc/mm/numa.c                    |   62 ++++++
 powerpc/arch/powerpc/platforms/pseries/firmware.c |    8 
 powerpc/arch/powerpc/platforms/pseries/mobility.c |   20 +-
 powerpc/arch/powerpc/platforms/pseries/pseries.h  |    5 
 powerpc/arch/powerpc/platforms/pseries/setup.c    |   40 ++--
 19 files changed, 496 insertions(+), 213 deletions(-)

Updates for v4 of the patchset:
------------------------------
1/13 - Remove the hook in ppc_md for updating te device tree.

3/13 - Put the rtas code to handle PRRN events in #ifdef CONFIG_PPC_PSERIES

4/13 - New patch. Update the iteration over arrays in firmware.c to use
ARRAY_SIZE()

5/13 (was 4/12) - Remove the unnecessary #ifdef

6/13 (was 5/12) - Removed the references to platform_has_feature() and update
the firmware.c updates to use ARRAY_SIZE() for iteration.

8/13 (was 7/12) - Correct subject.

13/13 (was 12/12) - Remove inlining of prrn_is_enabled().

Updates for v3 of the patchset:
------------------------------
1/12 - Updated to use a ppc_md interface to invoke device tree updates, this
corrects the build break previously seen in patch 2/12 for non-pseries
platforms.

2/12 - New patch in the series to correct the parsing of the buffer returned
from ibm,update-properties rtas call.

5/12 - The parsing of architecture vector 5 has been made more efficient.

7/12 - Correct #define used in call the firmware_has_feature()

8/12 - Updated calling of stop_machine() to only call it once per PRRN event.

12/12 - Added inclusion of topology.h to rtasd.c to correct a build failure
on non-pseries platforms.

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2013-04-26  3:08 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-24 15:34 [PATCH v4 0/13] NUMA CPU Reconfiguration using PRRN Nathan Fontenot
2013-04-24 15:47 ` [PATCH v4 1/13] Expose pseries devicetree_update() Nathan Fontenot
2013-04-24 15:49 ` [PATCH v4 2/13] Correct buffer parsing in update_dt_node() Nathan Fontenot
2013-04-26  3:01   ` Stephen Rothwell
2013-04-24 15:51 ` [PATCH v4 3/13] Add PRRN RTAS event handler Nathan Fontenot
2013-04-24 15:53 ` [PATCH v4 4/13] Move architecture vector definitions to prom.h Nathan Fontenot
2013-04-24 15:55 ` [PATCH v4 5/13] Use ARRAY_SIZE to iterate over firmware_features_table array Nathan Fontenot
2013-04-26  3:08   ` Stephen Rothwell
2013-04-24 15:57 ` [PATCH v4 6/13] Update firmware_has_feature() to check architecture vector 5 bits Nathan Fontenot
2013-04-24 15:58 ` [PATCH v4 7/13] Update numa.c to use updated firmware_has_feature() Nathan Fontenot
2013-04-24 16:00 ` [PATCH v4 8/13] Update CPU maps when device tree is updated Nathan Fontenot
2013-04-24 16:02 ` [PATCH v4 9/13] Use stop machine to update cpu maps Nathan Fontenot
2013-04-24 16:03 ` [PATCH v4 10/13] Update NUMA VDSO information when updating CPU maps Nathan Fontenot
2013-04-24 16:05 ` [PATCH v4 11/13] RE-enable Virtual Processor Home Node updating Nathan Fontenot
2013-04-24 16:06 ` [PATCH v4 12/13] Enable PRRN handling Nathan Fontenot
2013-04-24 16:07 ` [PATCH v4 13/13] Add /proc interface to control topology updates Nathan Fontenot

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).