|
From: | Avi Kivity |
Subject: | Re: [Qemu-devel] Re: [RFC][PATCH] performance improvement for windows guests, running on top of virtio block device |
Date: | Mon, 11 Jan 2010 15:13:53 +0200 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091209 Fedora/3.0-4.fc12 Thunderbird/3.0 |
On 01/11/2010 03:11 PM, Christoph Hellwig wrote:
FYI below is the manually applied patch without all the wrapping: static void virtio_blk_req_complete(VirtIOBlockReq *req, int status) { VirtIOBlock *s = req->dev; @@ -95,6 +98,12 @@ static void virtio_blk_req_complete(Virt virtqueue_push(s->vq,&req->elem, req->qiov.size + sizeof(*req->in)); virtio_notify(&s->vdev, s->vq); + if (--s->pending == 0) { + virtio_queue_set_notification(s->vq, 1); + virtio_blk_handle_output(&s->vdev, s->vq); + } +
As Dor points out, the call to virtio_blk_handle_output() wants to be before the test for pending, so we scan the ring as early as possible
-- error compiling committee.c: too many arguments to function
[Prev in Thread] | Current Thread | [Next in Thread] |