Messages in this thread | | | Date | Mon, 16 May 2022 10:25:01 -0400 | From | "Michael S. Tsirkin" <> | Subject | Re: [PATCH V4 0/9] rework on the IRQ hardening of virtio |
| |
On Mon, May 16, 2022 at 01:20:06PM +0200, Halil Pasic wrote: > On Thu, 12 May 2022 11:31:08 +0800 > Jason Wang <jasowang@redhat.com> wrote: > > > > > It looks to me we need to use write_lock_irq()/write_unlock_irq() to > > > > do the synchronization. > > > > > > > > And we probably need to keep the > > > > read_lock_irqsave()/read_lock_irqrestore() logic since I can see the > > > > virtio_ccw_int_handler() to be called from process context (e.g from > > > > the io_subchannel_quiesce()). > > > > > > > > > > Sounds correct. > > > > As Cornelia and Vineeth pointed out, all the paths the vring_interrupt > > is called with irq disabled. > > > > So I will use spin_lock()/spin_unlock() in the next version. > > Can we do some sort of an assertion that if the kernel is built with > the corresponding debug features will make sure this assumption holds > (and warn if it does not)? That assertion would also document the fact.
Lockdep will do this automatically if you get it wrong, just like it did here.
> If an assertion is not possible, I think we should at least place a > strategic comment that documents our assumption.
That can't hurt.
> Regards, > Halil > > > > > Thanks
| |