On Sunday 06 April 2008 00:53:39 Balaji Rao wrote: > On Friday 04 April 2008 01:46:21 pm Balaji Rao wrote: > > Hi Rusty, > > > > I hit a bug in virtio_ring.c:218 when I was stressing virtio_net using > > kvm with -smp 4. > > > > static void vring_disable_cb(struct virtqueue *_vq) > > { > > struct vring_virtqueue *vq = to_vvq(_vq); > > > > START_USE(vq); > > --> BUG_ON(vq->vring.avail->flags & VRING_AVAIL_F_NO_INTERRUPT); > > vq->vring.avail->flags |= VRING_AVAIL_F_NO_INTERRUPT; > > END_USE(vq); > > } > > > > Going through the source code, I felt that this BUG_ON is not required as > > any CPU could race and call disable_cb when one cpu still believes that > > its enabled. To validate my understanding, I commented out the BUG_ON and > > everything worked perfectly well. > > > > I also get a lot of "Unlikely: restart svq race" on my console. Under > > high load conditions, a race could occur very often and I'm not sure if > > that signals a buggy situation. We could printk_ratelimit if at all we > > need to retain it. > > > > If you agree, I'll send a patch to this. > > Christian Borntraeger CCed.
Hi Balaji, Interesting case.... can you put a '#define DEBUG' at the top of drivers/virtio/virtio_ring.c and re-run? The reason we don't simply remove that check is that interrupt bugs are nasty to track down, usually leading to performance problems rather than outright breakage. Thanks! Rusty. _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/virtualization