Il 27/09/2012 02:10, Rusty Russell ha scritto: >>> >> + do { >>> >> + virtqueue_disable_cb(vq); >>> >> + while ((vbr = virtqueue_get_buf(vblk->vq, &len)) != >>> >> NULL) { >>> >> + if (vbr->bio) { >>> >> + virtblk_bio_done(vbr); >>> >> + bio_done = true; >>> >> + } else { >>> >> + virtblk_request_done(vbr); >>> >> + req_done = true; >>> >> + } >>> >> } >>> >> - } >>> >> + } while (!virtqueue_enable_cb(vq)); >>> >> /* In case queue is stopped waiting for more buffers. */ >>> >> if (req_done) >>> >> blk_start_queue(vblk->disk->queue); > Fascinating. Please just confirm that VIRTIO_RING_F_EVENT_IDX is > enabled?
Yeah, it's a nice and cheap trick. Stefan, I see that you had this in virtio-scsi since even before I picked it up. Do you remember how you came up with it? Paolo _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization