On Sun, 10 Mar 2024, Michael Schmitz wrote:
But I've now got this in ARAnyM: BUG: spinlock recursion on CPU#0, pool_workqueue_/3 ...
OK. I am unable to reproduce the BUG, unfortunately.
mfp_timer_c_hander() has a local_irq_save() / local_irq_restore() pair around the legacy_timer_tick() invocation so this spinlock recursion does appear to work even without reentering the scheduling timer routine
IIUC it is not spinlock usage that's at issue. IIUC the problem is either the implementation of the locking primitives or the tests to verify their properties.