From: "Michael S. Tsirkin" <mst@redhat.com>
To: Christian Borntraeger <borntraeger@linux.ibm.com>
Cc: Andrew Boyer <andrew.boyer@amd.com>,
Viktor Prutyanov <viktor@daynix.com>,
Jason Wang <jasowang@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
Eugenio Perez <eperezma@redhat.com>,
Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
Jens Axboe <axboe@kernel.dk>,
virtualization@lists.linux.dev, linux-block@vger.kernel.org
Subject: Re: [PATCH] virtio_blk: always post notifications under the lock
Date: Thu, 9 Jan 2025 08:42:34 -0500 [thread overview]
Message-ID: <20250109083907-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <7a4f03a0-9640-4d15-9f0d-4e1ceb82aa8c@linux.ibm.com>
On Thu, Jan 09, 2025 at 01:01:20PM +0100, Christian Borntraeger wrote:
>
>
> Am 07.01.25 um 19:25 schrieb Andrew Boyer:
> > Commit af8ececda185 ("virtio: add VIRTIO_F_NOTIFICATION_DATA feature
> > support") added notification data support to the core virtio driver
> > code. When this feature is enabled, the notification includes the
> > updated producer index for the queue. Thus it is now critical that
> > notifications arrive in order.
> >
> > The virtio_blk driver has historically not worried about notification
> > ordering. Modify it so that the prepare and kick steps are both done
> > under the vq lock.
> >
> > Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>
> > Reviewed-by: Brett Creeley <brett.creeley@amd.com>
> > Fixes: af8ececda185 ("virtio: add VIRTIO_F_NOTIFICATION_DATA feature support")
> > Cc: Viktor Prutyanov <viktor@daynix.com>
> > Cc: virtualization@lists.linux.dev
> > Cc: linux-block@vger.kernel.org
> > ---
> > drivers/block/virtio_blk.c | 19 ++++---------------
> > 1 file changed, 4 insertions(+), 15 deletions(-)
> >
> > diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
> > index 3efe378f1386..14d9e66bb844 100644
> > --- a/drivers/block/virtio_blk.c
> > +++ b/drivers/block/virtio_blk.c
> > @@ -379,14 +379,10 @@ static void virtio_commit_rqs(struct blk_mq_hw_ctx *hctx)
> > {
> > struct virtio_blk *vblk = hctx->queue->queuedata;
> > struct virtio_blk_vq *vq = &vblk->vqs[hctx->queue_num];
> > - bool kick;
> > spin_lock_irq(&vq->lock);
> > - kick = virtqueue_kick_prepare(vq->vq);
> > + virtqueue_kick(vq->vq);
> > spin_unlock_irq(&vq->lock);
> > -
> > - if (kick)
> > - virtqueue_notify(vq->vq);
> > }
>
> I would assume this will be a performance nightmare for normal IO.
Indeed.
AMD guys, can't device survive with reordered notifications?
Basically just drop a notification if you see index
going back?
--
MST
next prev parent reply other threads:[~2025-01-09 13:42 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-07 18:25 [PATCH] virtio_blk: always post notifications under the lock Andrew Boyer
2025-01-08 2:02 ` Jason Wang
2025-01-09 10:19 ` Michael S. Tsirkin
2025-01-09 12:01 ` Christian Borntraeger
2025-01-09 13:42 ` Michael S. Tsirkin [this message]
2025-01-22 14:48 ` Boyer, Andrew
[not found] ` <FE77DD4F-AB39-4781-9D24-06F171F47FED@amd.com>
2025-01-22 15:13 ` Michael S. Tsirkin
2025-01-22 17:45 ` Boyer, Andrew
2025-01-23 6:53 ` Michael S. Tsirkin
2025-01-22 15:15 ` (repost) " Michael S. Tsirkin
2025-01-22 17:33 ` Christian Borntraeger
2025-01-22 17:49 ` Boyer, Andrew
2025-01-23 7:03 ` Michael S. Tsirkin
2025-01-22 22:07 ` Michael S. Tsirkin
2025-01-22 22:14 ` Boyer, Andrew
2025-01-22 22:25 ` Michael S. Tsirkin
2025-01-22 22:34 ` Boyer, Andrew
2025-01-23 1:47 ` Jason Wang
2025-01-23 6:51 ` Michael S. Tsirkin
2025-01-23 7:23 ` Michael S. Tsirkin
2025-01-23 8:39 ` Christian Borntraeger
2025-02-24 21:03 ` Michael S. Tsirkin
2025-02-24 21:31 ` Boyer, Andrew
2025-02-24 21:37 ` Michael S. Tsirkin
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=20250109083907-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=andrew.boyer@amd.com \
--cc=axboe@kernel.dk \
--cc=borntraeger@linux.ibm.com \
--cc=eperezma@redhat.com \
--cc=jasowang@redhat.com \
--cc=linux-block@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=stefanha@redhat.com \
--cc=viktor@daynix.com \
--cc=virtualization@lists.linux.dev \
--cc=xuanzhuo@linux.alibaba.com \
/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: link
Be 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.