From: Stefan Hajnoczi <stefanha@redhat.com> To: qemu-devel@nongnu.org Cc: "Hanna Reitz" <hreitz@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, "Stefan Hajnoczi" <stefanha@redhat.com>, "Kevin Wolf" <kwolf@redhat.com>, "Richard W.M. Jones" <rjones@redhat.com>, "Stefano Garzarella" <sgarzare@redhat.com>, "Paolo Bonzini" <pbonzini@redhat.com>, "Aarushi Mehta" <mehta.aaru20@gmail.com>, "Ronnie Sahlberg" <ronniesahlberg@gmail.com>, "Michael S. Tsirkin" <mst@redhat.com>, "Julia Suvorova" <jusual@redhat.com>, "Juan Quintela" <quintela@redhat.com>, "Philippe Mathieu-Daudé" <philmd@redhat.com>, "Anthony Perard" <anthony.perard@citrix.com>, "Paul Durrant" <paul@xen.org>, "Coiby Xu" <Coiby.Xu@gmail.com>, qemu-block@nongnu.org, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, xen-devel@lists.xenproject.org, "Stefan Weil" <sw@weilnetz.de>, "Fam Zheng" <fam@euphon.net>, "Stefano Stabellini" <sstabellini@kernel.org>, "Peter Lieven" <pl@kamp.de> Subject: [PATCH v2 3/6] virtio-blk: drop unused virtio_blk_handle_vq() return value Date: Thu, 2 Dec 2021 15:33:59 +0000 [thread overview] Message-ID: <20211202153402.604951-4-stefanha@redhat.com> (raw) In-Reply-To: <20211202153402.604951-1-stefanha@redhat.com> The return value of virtio_blk_handle_vq() is no longer used. Get rid of it. This is a step towards unifying the dataplane and non-dataplane virtqueue handler functions. Prepare virtio_blk_handle_output() to be used by both dataplane and non-dataplane by making the condition for starting ioeventfd more specific. This way it won't trigger when dataplane has already been started. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- include/hw/virtio/virtio-blk.h | 2 +- hw/block/virtio-blk.c | 14 +++----------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/include/hw/virtio/virtio-blk.h b/include/hw/virtio/virtio-blk.h index 29655a406d..d311c57cca 100644 --- a/include/hw/virtio/virtio-blk.h +++ b/include/hw/virtio/virtio-blk.h @@ -90,7 +90,7 @@ typedef struct MultiReqBuffer { bool is_write; } MultiReqBuffer; -bool virtio_blk_handle_vq(VirtIOBlock *s, VirtQueue *vq); +void virtio_blk_handle_vq(VirtIOBlock *s, VirtQueue *vq); void virtio_blk_process_queued_requests(VirtIOBlock *s, bool is_bh); #endif diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c index f139cd7cc9..82676cdd01 100644 --- a/hw/block/virtio-blk.c +++ b/hw/block/virtio-blk.c @@ -767,12 +767,11 @@ static int virtio_blk_handle_request(VirtIOBlockReq *req, MultiReqBuffer *mrb) return 0; } -bool virtio_blk_handle_vq(VirtIOBlock *s, VirtQueue *vq) +void virtio_blk_handle_vq(VirtIOBlock *s, VirtQueue *vq) { VirtIOBlockReq *req; MultiReqBuffer mrb = {}; bool suppress_notifications = virtio_queue_get_notification(vq); - bool progress = false; aio_context_acquire(blk_get_aio_context(s->blk)); blk_io_plug(s->blk); @@ -783,7 +782,6 @@ bool virtio_blk_handle_vq(VirtIOBlock *s, VirtQueue *vq) } while ((req = virtio_blk_get_request(s, vq))) { - progress = true; if (virtio_blk_handle_request(req, &mrb)) { virtqueue_detach_element(req->vq, &req->elem, 0); virtio_blk_free_request(req); @@ -802,19 +800,13 @@ bool virtio_blk_handle_vq(VirtIOBlock *s, VirtQueue *vq) blk_io_unplug(s->blk); aio_context_release(blk_get_aio_context(s->blk)); - return progress; -} - -static void virtio_blk_handle_output_do(VirtIOBlock *s, VirtQueue *vq) -{ - virtio_blk_handle_vq(s, vq); } static void virtio_blk_handle_output(VirtIODevice *vdev, VirtQueue *vq) { VirtIOBlock *s = (VirtIOBlock *)vdev; - if (s->dataplane) { + if (s->dataplane && !s->dataplane_started) { /* Some guests kick before setting VIRTIO_CONFIG_S_DRIVER_OK so start * dataplane here instead of waiting for .set_status(). */ @@ -823,7 +815,7 @@ static void virtio_blk_handle_output(VirtIODevice *vdev, VirtQueue *vq) return; } } - virtio_blk_handle_output_do(s, vq); + virtio_blk_handle_vq(s, vq); } void virtio_blk_process_queued_requests(VirtIOBlock *s, bool is_bh) -- 2.33.1
WARNING: multiple messages have this Message-ID (diff)
From: Stefan Hajnoczi <stefanha@redhat.com> To: qemu-devel@nongnu.org Cc: "Fam Zheng" <fam@euphon.net>, "Stefan Hajnoczi" <stefanha@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, "Stefano Stabellini" <sstabellini@kernel.org>, qemu-block@nongnu.org, "Juan Quintela" <quintela@redhat.com>, "Paul Durrant" <paul@xen.org>, "Anthony Perard" <anthony.perard@citrix.com>, xen-devel@lists.xenproject.org, "Philippe Mathieu-Daudé" <philmd@redhat.com>, "Stefano Garzarella" <sgarzare@redhat.com>, "Peter Lieven" <pl@kamp.de>, "Stefan Weil" <sw@weilnetz.de>, "Julia Suvorova" <jusual@redhat.com>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, "Ronnie Sahlberg" <ronniesahlberg@gmail.com>, "Aarushi Mehta" <mehta.aaru20@gmail.com>, "Kevin Wolf" <kwolf@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, "Richard W.M. Jones" <rjones@redhat.com>, "Coiby Xu" <Coiby.Xu@gmail.com>, "Hanna Reitz" <hreitz@redhat.com>, "Paolo Bonzini" <pbonzini@redhat.com> Subject: [PATCH v2 3/6] virtio-blk: drop unused virtio_blk_handle_vq() return value Date: Thu, 2 Dec 2021 15:33:59 +0000 [thread overview] Message-ID: <20211202153402.604951-4-stefanha@redhat.com> (raw) In-Reply-To: <20211202153402.604951-1-stefanha@redhat.com> The return value of virtio_blk_handle_vq() is no longer used. Get rid of it. This is a step towards unifying the dataplane and non-dataplane virtqueue handler functions. Prepare virtio_blk_handle_output() to be used by both dataplane and non-dataplane by making the condition for starting ioeventfd more specific. This way it won't trigger when dataplane has already been started. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- include/hw/virtio/virtio-blk.h | 2 +- hw/block/virtio-blk.c | 14 +++----------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/include/hw/virtio/virtio-blk.h b/include/hw/virtio/virtio-blk.h index 29655a406d..d311c57cca 100644 --- a/include/hw/virtio/virtio-blk.h +++ b/include/hw/virtio/virtio-blk.h @@ -90,7 +90,7 @@ typedef struct MultiReqBuffer { bool is_write; } MultiReqBuffer; -bool virtio_blk_handle_vq(VirtIOBlock *s, VirtQueue *vq); +void virtio_blk_handle_vq(VirtIOBlock *s, VirtQueue *vq); void virtio_blk_process_queued_requests(VirtIOBlock *s, bool is_bh); #endif diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c index f139cd7cc9..82676cdd01 100644 --- a/hw/block/virtio-blk.c +++ b/hw/block/virtio-blk.c @@ -767,12 +767,11 @@ static int virtio_blk_handle_request(VirtIOBlockReq *req, MultiReqBuffer *mrb) return 0; } -bool virtio_blk_handle_vq(VirtIOBlock *s, VirtQueue *vq) +void virtio_blk_handle_vq(VirtIOBlock *s, VirtQueue *vq) { VirtIOBlockReq *req; MultiReqBuffer mrb = {}; bool suppress_notifications = virtio_queue_get_notification(vq); - bool progress = false; aio_context_acquire(blk_get_aio_context(s->blk)); blk_io_plug(s->blk); @@ -783,7 +782,6 @@ bool virtio_blk_handle_vq(VirtIOBlock *s, VirtQueue *vq) } while ((req = virtio_blk_get_request(s, vq))) { - progress = true; if (virtio_blk_handle_request(req, &mrb)) { virtqueue_detach_element(req->vq, &req->elem, 0); virtio_blk_free_request(req); @@ -802,19 +800,13 @@ bool virtio_blk_handle_vq(VirtIOBlock *s, VirtQueue *vq) blk_io_unplug(s->blk); aio_context_release(blk_get_aio_context(s->blk)); - return progress; -} - -static void virtio_blk_handle_output_do(VirtIOBlock *s, VirtQueue *vq) -{ - virtio_blk_handle_vq(s, vq); } static void virtio_blk_handle_output(VirtIODevice *vdev, VirtQueue *vq) { VirtIOBlock *s = (VirtIOBlock *)vdev; - if (s->dataplane) { + if (s->dataplane && !s->dataplane_started) { /* Some guests kick before setting VIRTIO_CONFIG_S_DRIVER_OK so start * dataplane here instead of waiting for .set_status(). */ @@ -823,7 +815,7 @@ static void virtio_blk_handle_output(VirtIODevice *vdev, VirtQueue *vq) return; } } - virtio_blk_handle_output_do(s, vq); + virtio_blk_handle_vq(s, vq); } void virtio_blk_process_queued_requests(VirtIOBlock *s, bool is_bh) -- 2.33.1
next prev parent reply other threads:[~2021-12-02 15:37 UTC|newest] Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-12-02 15:33 [PATCH v2 0/6] aio-posix: split poll check from ready handler Stefan Hajnoczi 2021-12-02 15:33 ` Stefan Hajnoczi 2021-12-02 15:33 ` [PATCH v2 1/6] " Stefan Hajnoczi 2021-12-02 15:33 ` Stefan Hajnoczi 2021-12-02 15:33 ` [PATCH v2 2/6] virtio: get rid of VirtIOHandleAIOOutput Stefan Hajnoczi 2021-12-02 15:33 ` Stefan Hajnoczi 2021-12-02 15:33 ` Stefan Hajnoczi [this message] 2021-12-02 15:33 ` [PATCH v2 3/6] virtio-blk: drop unused virtio_blk_handle_vq() return value Stefan Hajnoczi 2021-12-02 15:34 ` [PATCH v2 4/6] virtio-scsi: prepare virtio_scsi_handle_cmd for dataplane Stefan Hajnoczi 2021-12-02 15:34 ` Stefan Hajnoczi 2021-12-02 15:34 ` [PATCH v2 5/6] virtio: use ->handle_output() instead of ->handle_aio_output() Stefan Hajnoczi 2021-12-02 15:34 ` Stefan Hajnoczi 2021-12-02 15:34 ` [PATCH v2 6/6] virtio: unify dataplane and non-dataplane ->handle_output() Stefan Hajnoczi 2021-12-02 15:34 ` Stefan Hajnoczi 2021-12-02 15:49 ` [PATCH v2 0/6] aio-posix: split poll check from ready handler Richard W.M. Jones 2021-12-02 15:49 ` Richard W.M. Jones 2021-12-02 15:55 ` Stefan Hajnoczi 2021-12-02 15:55 ` Stefan Hajnoczi
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20211202153402.604951-4-stefanha@redhat.com \ --to=stefanha@redhat.com \ --cc=Coiby.Xu@gmail.com \ --cc=anthony.perard@citrix.com \ --cc=berrange@redhat.com \ --cc=dgilbert@redhat.com \ --cc=fam@euphon.net \ --cc=hreitz@redhat.com \ --cc=jusual@redhat.com \ --cc=kwolf@redhat.com \ --cc=mehta.aaru20@gmail.com \ --cc=mst@redhat.com \ --cc=paul@xen.org \ --cc=pbonzini@redhat.com \ --cc=philmd@redhat.com \ --cc=pl@kamp.de \ --cc=qemu-block@nongnu.org \ --cc=qemu-devel@nongnu.org \ --cc=quintela@redhat.com \ --cc=rjones@redhat.com \ --cc=ronniesahlberg@gmail.com \ --cc=sgarzare@redhat.com \ --cc=sstabellini@kernel.org \ --cc=sw@weilnetz.de \ --cc=xen-devel@lists.xenproject.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.