Hi,

> I think the main idea spinlock disables preemption is,

> the other process that's spinning on the lock can acquire lock.



> but in some implementations of spinlock, like qspinlock in x86 (or mcs
lock),
> I think there's no need to disable preemption. because processes
> waiting for lock cannot acquire the lock before the lock holder hand
> over to other process.


Are you talking about disabling local irq(ex. spin_lock_irqsave)?

If so, think about the situation that a process holding the lock is
preempted

by interrupt. And that interrupt handler tries to grab the spinlock.

It will lead to deadlock.
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to