sched: system doesn't boot since "sched: Add new migrate_disable() implementation"

From: Christian Eggers
Date: Mon Oct 19 2020 - 06:21:39 EST


I have problems with the latest 5.9-rt releases on i.MX6ULL (!CONFIG_SMP):

-rc8-rt13 works fine
-rc8-rt14 doesn't compile (due to CONFIG_FRACE, already fixed in -rt16)
-rt15 dito.
-rt16 compiles, but doesn't boot (no console output at all)

After reverting (on -rt16)

de1c0755e6f9 ("tracing: fix compile failure on RT with PREEMPT_RT off")
30763ce6c15d ("sched: Add new migrate_disable() implementation")

the system boots fine again.

Tracking the problem down showed that calls to wait_for_completion_timeout()
(e.g. during imx_rngc_probe) will never return. The IRQ routine which should
fire the completion is not executed, and the call doesn't return after the
timeout. The IRQ flag on the ARM is not set before entering
wait_for_completion_timeout(), so CPU interrupts seem to be on.

When building with CONFIG_SMP, the system boots fine.

Any hints?

Best regards
Christian