am335x: 5.18.x: system stalling

Arnd Bergmann arnd at arndb.de
Tue May 31 08:22:42 PDT 2022


On Tue, May 31, 2022 at 4:16 PM Yegor Yefremov
<yegorslists at googlemail.com> wrote:
> On Tue, May 31, 2022 at 10:36 AM Yegor Yefremov <yegorslists at googlemail.com> wrote:
> # bad: [b6b3b4814e77d2f5a7517297e9ac1d1aa1cda103] [PART 1] ARM:
> implement THREAD_INFO_IN_TASK for uniprocessor systems
> git bisect bad b6b3b4814e77d2f5a7517297e9ac1d1aa1cda103
> # good: [dccfc18999cf4b4e518f01d5c7c578426166e5f2] ARM: v7m: enable
> support for IRQ stacks
> git bisect good dccfc18999cf4b4e518f01d5c7c578426166e5f2
> # first bad commit: [b6b3b4814e77d2f5a7517297e9ac1d1aa1cda103] [PART
> 1] ARM: implement THREAD_INFO_IN_TASK for uniprocessor systems
>
> Though commit b6b3b4814e77d2f5a7517297e9ac1d1aa1cda103 led to a broken
> kernel that didn't even show any output after the bootloader had
> started it.
>
> Commit 2d3456213319c0277ee6082946c43c3afacca9b4 showed the expected stalling.

Ok, good, so we know that the "ARM: implement THREAD_INFO_IN_TASK for
uniprocessor system" commit caused the problem then. This is what we had
already assumed, but now it's confirmed.

Too bad I screwed up that "this_cpu_offset" macro, I think it should
have been

@@ -286,7 +286,7 @@ THUMB(      fpreg   .req    r7      )
         *                   register 'rd'
         */
        .macro          this_cpu_offset, rd:req
-       mov             \rd, #0
+       ldr_va          \rd, __per_cpu_offset
        .endm

        /*

I've pushed a modified branch now, with that fix on the broken commit,
and another change to make CONFIG_IRQSTACKS user-selectable rather
than always enabled. That should tell us if the problem is in the SMP
patching or in the irqstacks.

Can you test the top of this branch with CONFIG_IRQSTACKS disabled,
and (if that still stalls) retest the fixed commit f0191ea5c2e5 ("[PART 1]
ARM: implement THREAD_INFO_IN_TASK for uniprocessor systems")?

      Arnd



More information about the linux-arm-kernel mailing list