Re: [PATCH v2 25/43] powerpc/32: Replace ASM exception exit by C exception exit from ppc64

From: Christophe Leroy
Date: Fri Mar 12 2021 - 03:29:28 EST




Le 12/03/2021 à 00:26, Michael Ellerman a écrit :
Christophe Leroy <christophe.leroy@xxxxxxxxxx> writes:
Le 11/03/2021 à 14:46, Michael Ellerman a écrit :
Christophe Leroy <christophe.leroy@xxxxxxxxxx> writes:
This patch replaces the PPC32 ASM exception exit by C exception exit.

Signed-off-by: Christophe Leroy <christophe.leroy@xxxxxxxxxx>
---
arch/powerpc/kernel/entry_32.S | 481 +++++++++-----------------------
arch/powerpc/kernel/interrupt.c | 4 +
2 files changed, 132 insertions(+), 353 deletions(-)

Bisect points to this breaking qemu mac99 for me, with pmac32_defconfig.

I haven't had time to dig any deeper sorry.

Embarrasing ...

Nah, these things happen.

I don't get this problem on the 8xx (nohash/32) or the 83xx (book3s/32).
I don't get this problem with qemu mac99 when using my klibc-based initramfs.

I managed to reproduce it with the rootfs.cpio that I got some time ago from linuxppc github Wiki.

OK.

I'm using the ppc-rootfs.cpio.gz from here:

https://github.com/linuxppc/ci-scripts/blob/master/root-disks/Makefile

And the boot script is:

https://github.com/linuxppc/ci-scripts/blob/master/scripts/boot/qemu-mac99

I've been meaning to write docs on how to use those scripts, but haven't
got around to it.

There's nothing really special though it's just a wrapper around qemu -M mac99.

I'll investigate it tomorrow.


Problem is the fast_interrupt_return, registers are not all saved yet on ppc32 (msr, nip, xer, ctr), can't restore them all as ppc64 do.

The problem happens only when userspace uses floating point or altivec.

For the time being, I'll keep the original fast_interrupt_return.

I will likely send a new version of the series later today, taking into account Nick's comments.

Christophe