From: "Michael S. Tsirkin" <mst@redhat.com>
To: Jason Wang <jasowang@redhat.com>
Cc: 黄杰 <huangjie.albert@bytedance.com>,
"Christian Schoenebeck" <linux_oss@crudebyte.com>,
linux-kernel@vger.kernel.org,
virtualization@lists.linux-foundation.org,
"Eric Van Hensbergen" <ericvh@gmail.com>,
"Luis Chamberlain" <mcgrof@kernel.org>,
v9fs-developer@lists.sourceforge.net
Subject: Re: [External] Re: 9p regression (Was: [PATCH v2] virtio_ring: don't update event idx on get_buf)
Date: Wed, 29 Mar 2023 01:21:42 -0400 [thread overview]
Message-ID: <20230329012038-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <CACGkMEuukvjXBTDX2K9YLYmpHsqK96AiMK39gbm3+f_+kUydMQ@mail.gmail.com>
On Tue, Mar 28, 2023 at 11:39:59AM +0800, Jason Wang wrote:
> On Tue, Mar 28, 2023 at 11:09 AM 黄杰 <huangjie.albert@bytedance.com> wrote:
> >
> > Jason Wang <jasowang@redhat.com> 于2023年3月28日周二 10:59写道:
> > >
> > > On Tue, Mar 28, 2023 at 10:13 AM Dominique Martinet
> > > <asmadeus@codewreck.org> wrote:
> > > >
> > > > Hi Michael, Albert,
> > > >
> > > > Albert Huang wrote on Sat, Mar 25, 2023 at 06:56:33PM +0800:
> > > > > in virtio_net, if we disable the napi_tx, when we triger a tx interrupt,
> > > > > the vq->event_triggered will be set to true. It will no longer be set to
> > > > > false. Unless we explicitly call virtqueue_enable_cb_delayed or
> > > > > virtqueue_enable_cb_prepare.
> > > >
> > > > This patch (commited as 35395770f803 ("virtio_ring: don't update event
> > > > idx on get_buf") in next-20230327 apparently breaks 9p, as reported by
> > > > Luis in https://lkml.kernel.org/r/ZCI+7Wg5OclSlE8c@bombadil.infradead.org
> > > >
> > > > I've just hit had a look at recent patches[1] and reverted this to test
> > > > and I can mount again, so I'm pretty sure this is the culprit, but I
> > > > didn't look at the content at all yet so cannot advise further.
> > > > It might very well be that we need some extra handling for 9p
> > > > specifically that can be added separately if required.
> > > >
> > > > [1] git log 0ec57cfa721fbd36b4c4c0d9ccc5d78a78f7fa35..HEAD drivers/virtio/
> > > >
> > > >
> > > > This can be reproduced with a simple mount, run qemu with some -virtfs
> > > > argument and `mount -t 9p -o debug=65535 tag mountpoint` will hang after
> > > > these messages:
> > > > 9pnet: -- p9_virtio_request (83): 9p debug: virtio request
> > > > 9pnet: -- p9_virtio_request (83): virtio request kicked
> > > >
> > > > So I suspect we're just not getting a callback.
> > >
> > > I think so. The patch assumes the driver will call
> > > virtqueue_disable/enable_cb() which is not the case of the 9p driver.
> > >
> > > So after the first interrupt, event_triggered will be set to true forever.
> > >
> > > Thanks
> > >
> >
> > Hi: Wang
> >
> > Yes, This patch assumes that all virtio-related drivers will call
> > virtqueue_disable/enable_cb().
> > Thank you for raising this issue.
> >
> > It seems that napi_tx is only related to virtue_net. I'm thinking if
> > we need to refactor
> > napi_tx instead of implementing it inside virtio_ring.
>
> We can hear from others.
>
> I think it's better not to workaround virtio_ring issues in a specific
> driver. It might just add more hacks. We should correctly set
> VRING_AVAIL_F_NO_INTERRUPT,
I am still stuck trying to understand why we don't set it.
How does event_triggered end up getting set without
event index support?
Thanks!
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Jason Wang <jasowang@redhat.com>
Cc: 黄杰 <huangjie.albert@bytedance.com>,
"Dominique Martinet" <asmadeus@codewreck.org>,
virtualization@lists.linux-foundation.org,
linux-kernel@vger.kernel.org,
"Luis Chamberlain" <mcgrof@kernel.org>,
v9fs-developer@lists.sourceforge.net,
"Eric Van Hensbergen" <ericvh@gmail.com>,
"Christian Schoenebeck" <linux_oss@crudebyte.com>
Subject: Re: [External] Re: 9p regression (Was: [PATCH v2] virtio_ring: don't update event idx on get_buf)
Date: Wed, 29 Mar 2023 01:21:42 -0400 [thread overview]
Message-ID: <20230329012038-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <CACGkMEuukvjXBTDX2K9YLYmpHsqK96AiMK39gbm3+f_+kUydMQ@mail.gmail.com>
On Tue, Mar 28, 2023 at 11:39:59AM +0800, Jason Wang wrote:
> On Tue, Mar 28, 2023 at 11:09 AM 黄杰 <huangjie.albert@bytedance.com> wrote:
> >
> > Jason Wang <jasowang@redhat.com> 于2023年3月28日周二 10:59写道:
> > >
> > > On Tue, Mar 28, 2023 at 10:13 AM Dominique Martinet
> > > <asmadeus@codewreck.org> wrote:
> > > >
> > > > Hi Michael, Albert,
> > > >
> > > > Albert Huang wrote on Sat, Mar 25, 2023 at 06:56:33PM +0800:
> > > > > in virtio_net, if we disable the napi_tx, when we triger a tx interrupt,
> > > > > the vq->event_triggered will be set to true. It will no longer be set to
> > > > > false. Unless we explicitly call virtqueue_enable_cb_delayed or
> > > > > virtqueue_enable_cb_prepare.
> > > >
> > > > This patch (commited as 35395770f803 ("virtio_ring: don't update event
> > > > idx on get_buf") in next-20230327 apparently breaks 9p, as reported by
> > > > Luis in https://lkml.kernel.org/r/ZCI+7Wg5OclSlE8c@bombadil.infradead.org
> > > >
> > > > I've just hit had a look at recent patches[1] and reverted this to test
> > > > and I can mount again, so I'm pretty sure this is the culprit, but I
> > > > didn't look at the content at all yet so cannot advise further.
> > > > It might very well be that we need some extra handling for 9p
> > > > specifically that can be added separately if required.
> > > >
> > > > [1] git log 0ec57cfa721fbd36b4c4c0d9ccc5d78a78f7fa35..HEAD drivers/virtio/
> > > >
> > > >
> > > > This can be reproduced with a simple mount, run qemu with some -virtfs
> > > > argument and `mount -t 9p -o debug=65535 tag mountpoint` will hang after
> > > > these messages:
> > > > 9pnet: -- p9_virtio_request (83): 9p debug: virtio request
> > > > 9pnet: -- p9_virtio_request (83): virtio request kicked
> > > >
> > > > So I suspect we're just not getting a callback.
> > >
> > > I think so. The patch assumes the driver will call
> > > virtqueue_disable/enable_cb() which is not the case of the 9p driver.
> > >
> > > So after the first interrupt, event_triggered will be set to true forever.
> > >
> > > Thanks
> > >
> >
> > Hi: Wang
> >
> > Yes, This patch assumes that all virtio-related drivers will call
> > virtqueue_disable/enable_cb().
> > Thank you for raising this issue.
> >
> > It seems that napi_tx is only related to virtue_net. I'm thinking if
> > we need to refactor
> > napi_tx instead of implementing it inside virtio_ring.
>
> We can hear from others.
>
> I think it's better not to workaround virtio_ring issues in a specific
> driver. It might just add more hacks. We should correctly set
> VRING_AVAIL_F_NO_INTERRUPT,
I am still stuck trying to understand why we don't set it.
How does event_triggered end up getting set without
event index support?
Thanks!
next prev parent reply other threads:[~2023-03-29 5:21 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-25 10:56 [PATCH v2] virtio_ring: don't update event idx on get_buf Albert Huang
2023-03-27 4:02 ` Xuan Zhuo
2023-03-27 4:02 ` Xuan Zhuo
2023-03-27 12:43 ` Michael S. Tsirkin
2023-03-27 12:43 ` Michael S. Tsirkin
2023-03-28 2:13 ` 9p regression (Was: [PATCH v2] virtio_ring: don't update event idx on get_buf) Dominique Martinet
2023-03-28 2:13 ` Dominique Martinet
2023-03-28 2:58 ` Jason Wang
2023-03-28 2:58 ` Jason Wang
2023-03-28 3:09 ` [External] " 黄杰
2023-03-28 3:39 ` Jason Wang
2023-03-28 3:39 ` Jason Wang
2023-03-28 9:09 ` 黄杰
2023-03-28 14:35 ` Michael S. Tsirkin
2023-03-28 14:35 ` Michael S. Tsirkin
2023-03-29 5:34 ` Michael S. Tsirkin
2023-03-29 5:34 ` Michael S. Tsirkin
2023-03-29 7:21 ` [PATCH v3] virtio_ring: interrupt disable flag updated to vq even with event_triggered is set Albert Huang
2023-03-29 7:27 ` Xuan Zhuo
2023-03-29 7:27 ` Xuan Zhuo
2023-03-29 16:28 ` Michael S. Tsirkin
2023-03-29 16:28 ` Michael S. Tsirkin
2023-03-29 16:26 ` Michael S. Tsirkin
2023-03-29 16:26 ` Michael S. Tsirkin
2023-03-29 5:21 ` Michael S. Tsirkin [this message]
2023-03-29 5:21 ` [External] Re: 9p regression (Was: [PATCH v2] virtio_ring: don't update event idx on get_buf) Michael S. Tsirkin
2023-03-29 5:42 ` Michael S. Tsirkin
2023-03-29 5:42 ` Michael S. Tsirkin
2023-03-30 2:52 ` Jason Wang
2023-03-30 2:52 ` Jason Wang
2023-03-28 4:49 ` Luis Chamberlain
2023-03-28 4:49 ` Luis Chamberlain
2023-03-29 5:36 ` [PATCH v2] virtio_ring: don't update event idx on get_buf Michael S. Tsirkin
2023-03-29 5:36 ` 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=20230329012038-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=ericvh@gmail.com \
--cc=huangjie.albert@bytedance.com \
--cc=jasowang@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux_oss@crudebyte.com \
--cc=mcgrof@kernel.org \
--cc=v9fs-developer@lists.sourceforge.net \
--cc=virtualization@lists.linux-foundation.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: 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.