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

Christophe Leroy christophe.leroy at csgroup.eu
Fri Mar 12 19:28:12 AEDT 2021



Le 12/03/2021 à 00:26, Michael Ellerman a écrit :
> Christophe Leroy <christophe.leroy at csgroup.eu> writes:
>> Le 11/03/2021 à 14:46, Michael Ellerman a écrit :
>>> Christophe Leroy <christophe.leroy at csgroup.eu> writes:
>>>> This patch replaces the PPC32 ASM exception exit by C exception exit.
>>>>
>>>> Signed-off-by: Christophe Leroy <christophe.leroy at csgroup.eu>
>>>> ---
>>>>    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


More information about the Linuxppc-dev mailing list