kernel BUG at drivers/virtio/virtio_ring.c:218!
Balaji Rao
balajirrao at gmail.com
Fri Apr 4 01:16:21 PDT 2008
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.
--
thanks and regards,
Balaji Rao
Dept. of Mechanical Engineering,
National Institute of Technology Karnataka, India
More information about the Virtualization
mailing list