On Wed, 2026-05-27 at 15:16 +1200, Mark Tomlinson wrote: > Using the PowerPC P2040 (e500mc) CPU, soft lockups can occasionally > be > seen in smp_call_function_many_cond(). The conclusion is that this > CPU > does not process the doorbell interrupt while in a data-storage (MMU) > exception. If more than one CPU in a multi core environment is > calling > this function at the same time, it is possible for a deadlock to > occur.
Does that mean if the CPU in question does not call smp_call_function_many_cond() while in a data-storage exception, the system might still hang? Not that there's anything wrong with reducing the frequency of what is (presumably) an already pretty rare hang. > > The fix for this is to call flush_smp_call_function_queue() before > waiting for responses from other CPUs. If there is something in the > queue, this is a good time to process it before busy-waiting on other > CPUs. On other architectures this call will quickly do nothing, as > the > queue will be empty. Agreed, this does look completely harmless at worst, and does look like it would at the very least improve that e500mc issue. > > Signed-off-by: Mark Tomlinson <[email protected]> > Reviewed-by: Rik van Riel <[email protected]> -- All Rights Reversed.
