On Mon, Sep 4, 2023 at 10:34 AM Rafał Miłecki <zajec5@xxxxxxxxx> wrote:
I'm clueless at this point.
Maybe someone can come up with an idea of actual issue & ideally a
solution.
Damn this is frustrating.
2. Clock (arm,armv7-timer)
While comparing main clock in Broadcom's SDK with upstream one I noticed
a tiny difference: mask value. I don't know it it makes any sense but
switching from CLOCKSOURCE_MASK(56) to CLOCKSOURCE_MASK(64) in
arm_arch_timer.c (to match SDK) increases average uptime (time before a
hang/lockup happens) from 4 minutes to 36 minutes.
This could be related to how often the system goes to idle.
+ if (cpu_idle_force_poll == 1234)
+ arch_cpu_idle();
+ if (cpu_idle_force_poll == 5678)
+ arch_cpu_idle();
+ if (cpu_idle_force_poll == 1234)
+ arch_cpu_idle();
+ if (cpu_idle_force_poll == 5678)
+ arch_cpu_idle();
+ if (cpu_idle_force_poll == 1234)
+ arch_cpu_idle();
+ if (cpu_idle_force_poll == 5678)
+ arch_cpu_idle();
+ if (cpu_idle_force_poll == 1234)
+ arch_cpu_idle();
Idle again.
I would have tried to see what arch_cpu_idle() is doing.
arm_pm_idle() or cpu_do_idle()?
What happens if you just put return in arch_cpu_idle()
so it does nothing?