On Mon, Oct 02, 2017 at 02:30:33PM +0200, Paolo Bonzini wrote: > I don't understand why is it correct to delay interrupt injection just > because VCPU0 is running in a spinlock-protected region? I just cannot > see the reason why it's safe and not a recipe for priority inversions.
It is indeed not right. Something like: raw_spin_lock(&some_lock); /* do crud */ raw_spin_unlock(&some_lock); Should not hold off the interrupt that tells you your finger is in imminent danger of becoming detached. Only when we do local_irq_disable() (ie. raw_spin_lock_irq*() and the like) should we avoid interrupt delivery. This whole fixation on spinlock regions is misguided and must stop, its wrong on all levels.