[PATCH v2] powerpc/32: Fix unpaired stwcx. on interrupt exit
Christophe Leroy
christophe.leroy at csgroup.eu
Fri Sep 12 23:34:50 AEST 2025
Hi Segher,
Le 12/09/2025 à 15:24, Segher Boessenkool a écrit :
> Hi!
>
> On Fri, Sep 12, 2025 at 10:37:34AM +0200, Christophe Leroy wrote:
>> BEGIN_FTR_SECTION
>> + lwarx r0,0,r1
>> +END_FTR_SECTION_IFSET(CPU_FTR_NEED_PAIRED_STWCX)
>> stwcx. r0,0,r1 /* to clear the reservation */
>> -FTR_SECTION_ELSE
>> - lwarx r0,0,r1
>> -ALT_FTR_SECTION_END_IFCLR(CPU_FTR_STCX_CHECKS_ADDRESS)
>
> Hrm. So this is for V'ger (mpc7450)? What kind of issues does that
> old thing have with unpaired larx/stcx., some performance impact?
No idea, The original commit (from 2007) only says "some processors can
have issues if this stwcx to address A occurs while the reservation is
already held to a different address B".
>
> The extra "dummy" larx has serious performance impact itself, on most
> implementations (also on all newer stuff).
To be honnest I don't know. I just discovered I made a mistake when I
implemented C interrupt exit and this patch is aiming at restoring the
previous behaviour.
If you think this is pointless then no problem, I can instead just
remove the impossible case and that's it.
What is odd to begin with is that we have two features that seems to
address the same problem but in a slightly different way
- CPU_FTR_NEED_PAIRED_STWCX for PPC32
- CPU_FTR_STCX_CHECKS_ADDRESS for PPC64
What do you recommend ?
Christophe
More information about the Linuxppc-dev
mailing list