Re: spinlock recursion when running q800 emulation in qemu

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Finn,

On 7/03/24 12:52, Finn Thain wrote:
On Wed, 6 Mar 2024, Michael Schmitz wrote:

There does not appear to be any interrupt nesting here.

It's not in the backtrace but that doesn't mean much. It would be
impossible for a lock checker to place all of it's state on the stack.
If interrupt nesting messed up its state, you won't know it by looking at
the stack after the fact.

True, we may see the effect only on the next tick.

But we may not need to invoke lock checker corruption in order to explain the recursion message.

Reentering the VIA1 timer handler would re-run scheduler_tick(). If the prior run has not yet released the run queue lock, we'd get the recursion message.

I realized (belatedly) that scheduler_tick() does not run the task itself but just causes a reschedule if appropriate, so the probability for this condition is quite low. The question is - does the VIA1 timer interrupt ever get reentered?

Can you add a printk_once() warning when you see arch/m68k/mac/via.c:via_timer_handler() reentered, Guenter?

Cheers,

    Michael







[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux