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
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html