Re: BUG : PowerPC RCU: torture test failed with __stack_chk_fail

From: Christophe Leroy
Date: Fri Apr 28 2023 - 06:35:13 EST




Le 26/04/2023 à 14:29, Michael Ellerman a écrit :
> Joel Fernandes <joel@xxxxxxxxxxxxxxxxx> writes:
>> On Tue, Apr 25, 2023 at 6:58 AM Zhouyi Zhou <zhouzhouyi@xxxxxxxxx> wrote:
> ...
>>
>> Out of curiosity for PPC folks, why cannot 64-bit PPC use per-task
>> canary? Michael, is this an optimization? Adding Christophe as well
>> since it came in a few years ago via the following commit:
>
> I think Christophe also answered these in his reply.
>
> We do use a per-task canary, but because we don't have "current" in a
> register, we can't use the value in current for GCC.
>
> In one of my replies I said a possible solution would be to keep current
> in a register on 64-bit, but we'd need to do that in addition to the
> paca, so that would consume another GPR which we'd need to think hard
> about.

An analysis was done here https://github.com/linuxppc/issues/issues/45
showing that r14 is very little used.

>
> There's another reason to have it in the paca, which is that the paca is
> always accessible, even when the MMU is off, whereas current isn't (in
> some situations).

Even now that powerpc is converted to CONFIG_THREAD_INFO_IN_TASK ?

Christophe