mbox series

[00/14] powerpc/rtas: various cleanups and improvements

Message ID 20220308135047.478297-1-npiggin@gmail.com (mailing list archive)
Headers show
Series powerpc/rtas: various cleanups and improvements | expand

Message

Nicholas Piggin March 8, 2022, 1:50 p.m. UTC
I had a bunch of random little fixes and cleanups around and
was prompted to put them together and make a change to call
RTAS with MSR[RI] enabled because of a report of the hard
lockup watchdog NMI IPI hitting in an rtas call which then
crashed because it's unrecoverable.

Could possibly move patch 9 earlier if it would help with
backporting.

Thanks,
Nick

Nicholas Piggin (14):
  powerpc/rtas: Move rtas entry assembly into its own file
  powerpc/rtas: Make enter_rtas a nokprobe symbol on 64-bit
  powerpc/rtas: Fix whitespace in rtas_entry.S
  powerpc/rtas: Call enter_rtas with MSR[EE] disabled
  powerpc/rtas: Modernise RI clearing on 64-bit
  powerpc/rtas: Load rtas entry MSR explicitly
  powerpc/rtas: PACA can be restored directly from SPRG
  powerpc/rtas: call enter_rtas in real-mode on 64-bit
  powerpc/rtas: Leave MSR[RI] enabled over RTAS call
  powerpc/rtas: replace rtas_call_unlocked with raw_rtas_call
  powerpc/rtas: tidy __fetch_rtas_last_error
  powerpc/rtas: Close theoretical memory leak
  powerpc/rtas: enture rtas_call is called with MMU enabled
  powerpc/rtas: Consolidate and improve checking for rtas callers

 arch/powerpc/include/asm/rtas.h              |   4 +-
 arch/powerpc/kernel/Makefile                 |   2 +-
 arch/powerpc/kernel/entry_32.S               |  49 ------
 arch/powerpc/kernel/entry_64.S               | 150 -------------------
 arch/powerpc/kernel/rtas.c                   | 132 +++++++++-------
 arch/powerpc/kernel/rtas_entry.S             | 144 ++++++++++++++++++
 arch/powerpc/platforms/pseries/hotplug-cpu.c |   2 +-
 arch/powerpc/platforms/pseries/ras.c         |   7 +-
 arch/powerpc/xmon/xmon.c                     |   2 +-
 9 files changed, 227 insertions(+), 265 deletions(-)
 create mode 100644 arch/powerpc/kernel/rtas_entry.S

Comments

Christophe Leroy March 8, 2022, 2:51 p.m. UTC | #1
Hi Nick,

Le 08/03/2022 à 14:50, Nicholas Piggin a écrit :
> I had a bunch of random little fixes and cleanups around and
> was prompted to put them together and make a change to call
> RTAS with MSR[RI] enabled because of a report of the hard
> lockup watchdog NMI IPI hitting in an rtas call which then
> crashed because it's unrecoverable.
> 
> Could possibly move patch 9 earlier if it would help with
> backporting.
> 
> Thanks,
> Nick

While you are at cleaning RTAS, maybe you could add to your series the 
two following patches, unless they are not applicable anymore ?

https://patchwork.ozlabs.org/project/linuxppc-dev/patch/20210714122753.76021-1-zhuangyi1@huawei.com/

https://patchwork.ozlabs.org/project/linuxppc-dev/patch/20210526092020.554341-1-chenhuang5@huawei.com/

Christophe

> 
> Nicholas Piggin (14):
>    powerpc/rtas: Move rtas entry assembly into its own file
>    powerpc/rtas: Make enter_rtas a nokprobe symbol on 64-bit
>    powerpc/rtas: Fix whitespace in rtas_entry.S
>    powerpc/rtas: Call enter_rtas with MSR[EE] disabled
>    powerpc/rtas: Modernise RI clearing on 64-bit
>    powerpc/rtas: Load rtas entry MSR explicitly
>    powerpc/rtas: PACA can be restored directly from SPRG
>    powerpc/rtas: call enter_rtas in real-mode on 64-bit
>    powerpc/rtas: Leave MSR[RI] enabled over RTAS call
>    powerpc/rtas: replace rtas_call_unlocked with raw_rtas_call
>    powerpc/rtas: tidy __fetch_rtas_last_error
>    powerpc/rtas: Close theoretical memory leak
>    powerpc/rtas: enture rtas_call is called with MMU enabled
>    powerpc/rtas: Consolidate and improve checking for rtas callers
> 
>   arch/powerpc/include/asm/rtas.h              |   4 +-
>   arch/powerpc/kernel/Makefile                 |   2 +-
>   arch/powerpc/kernel/entry_32.S               |  49 ------
>   arch/powerpc/kernel/entry_64.S               | 150 -------------------
>   arch/powerpc/kernel/rtas.c                   | 132 +++++++++-------
>   arch/powerpc/kernel/rtas_entry.S             | 144 ++++++++++++++++++
>   arch/powerpc/platforms/pseries/hotplug-cpu.c |   2 +-
>   arch/powerpc/platforms/pseries/ras.c         |   7 +-
>   arch/powerpc/xmon/xmon.c                     |   2 +-
>   9 files changed, 227 insertions(+), 265 deletions(-)
>   create mode 100644 arch/powerpc/kernel/rtas_entry.S
>
Laurent Dufour March 17, 2022, 11:15 a.m. UTC | #2
Hi Nick,

As this series needs additional work, I just sent a single patch [1] fixing
the MSR[RI] issue addressed in the patch 9/14 of this series.

I did that because that fix is fixing a panic currently seen and this will
ease backport to stable and distro kernel.

I suggest rebasing this series on top of this new patch.

Cheers,
Laurent.

1:
https://lore.kernel.org/linuxppc-dev/20220317110601.86917-1-ldufour@linux.ibm.com/

On 08/03/2022, 14:50:33, Nicholas Piggin wrote:
> I had a bunch of random little fixes and cleanups around and
> was prompted to put them together and make a change to call
> RTAS with MSR[RI] enabled because of a report of the hard
> lockup watchdog NMI IPI hitting in an rtas call which then
> crashed because it's unrecoverable.
> 
> Could possibly move patch 9 earlier if it would help with
> backporting.
> 
> Thanks,
> Nick
> 
> Nicholas Piggin (14):
>   powerpc/rtas: Move rtas entry assembly into its own file
>   powerpc/rtas: Make enter_rtas a nokprobe symbol on 64-bit
>   powerpc/rtas: Fix whitespace in rtas_entry.S
>   powerpc/rtas: Call enter_rtas with MSR[EE] disabled
>   powerpc/rtas: Modernise RI clearing on 64-bit
>   powerpc/rtas: Load rtas entry MSR explicitly
>   powerpc/rtas: PACA can be restored directly from SPRG
>   powerpc/rtas: call enter_rtas in real-mode on 64-bit
>   powerpc/rtas: Leave MSR[RI] enabled over RTAS call
>   powerpc/rtas: replace rtas_call_unlocked with raw_rtas_call
>   powerpc/rtas: tidy __fetch_rtas_last_error
>   powerpc/rtas: Close theoretical memory leak
>   powerpc/rtas: enture rtas_call is called with MMU enabled
>   powerpc/rtas: Consolidate and improve checking for rtas callers
> 
>  arch/powerpc/include/asm/rtas.h              |   4 +-
>  arch/powerpc/kernel/Makefile                 |   2 +-
>  arch/powerpc/kernel/entry_32.S               |  49 ------
>  arch/powerpc/kernel/entry_64.S               | 150 -------------------
>  arch/powerpc/kernel/rtas.c                   | 132 +++++++++-------
>  arch/powerpc/kernel/rtas_entry.S             | 144 ++++++++++++++++++
>  arch/powerpc/platforms/pseries/hotplug-cpu.c |   2 +-
>  arch/powerpc/platforms/pseries/ras.c         |   7 +-
>  arch/powerpc/xmon/xmon.c                     |   2 +-
>  9 files changed, 227 insertions(+), 265 deletions(-)
>  create mode 100644 arch/powerpc/kernel/rtas_entry.S
>
Michael Ellerman May 24, 2022, 11:08 a.m. UTC | #3
On Tue, 8 Mar 2022 23:50:33 +1000, Nicholas Piggin wrote:
> I had a bunch of random little fixes and cleanups around and
> was prompted to put them together and make a change to call
> RTAS with MSR[RI] enabled because of a report of the hard
> lockup watchdog NMI IPI hitting in an rtas call which then
> crashed because it's unrecoverable.
> 
> Could possibly move patch 9 earlier if it would help with
> backporting.
> 
> [...]

Patches 1-4, 7, 9 & 13 applied to powerpc/next.

[01/14] powerpc/rtas: Move rtas entry assembly into its own file
        https://git.kernel.org/powerpc/c/838ee286ecc9a3c76e6bd8f5aaad0c8c5c66b9ca
[02/14] powerpc/rtas: Make enter_rtas a nokprobe symbol on 64-bit
        https://git.kernel.org/powerpc/c/07940b4b61cf0cbcfb9e4226c07318f737157c42
[03/14] powerpc/rtas: Fix whitespace in rtas_entry.S
        https://git.kernel.org/powerpc/c/4e949faae2bd42783a2b2b732b7bf17557d94cfb
[04/14] powerpc/rtas: Call enter_rtas with MSR[EE] disabled
        https://git.kernel.org/powerpc/c/c5a65e0a420d50655bf692fc7386813683c0cd81
[07/14] powerpc/rtas: PACA can be restored directly from SPRG
        https://git.kernel.org/powerpc/c/5c86bd02b3c3ef68a109fa7e690ad62d3091f6d4
[09/14] powerpc/rtas: Leave MSR[RI] enabled over RTAS call
        https://git.kernel.org/powerpc/c/014b2e896cc8445fcc04636e69bf5f9e24281daa
[13/14] powerpc/rtas: enture rtas_call is called with MMU enabled
        https://git.kernel.org/powerpc/c/804c0a166ffea628eb7ef72b9fd710883cb1fa8f

cheers