linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] 9p/trans_virtio: handle request cancellation
@ 2017-12-20 17:46 Greg Kurz
  2017-12-20 17:46 ` [PATCH 1/2] virtio: allow to detach a buffer from the virtqueue Greg Kurz
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Greg Kurz @ 2017-12-20 17:46 UTC (permalink / raw)
  To: linux-kernel; +Cc: v9fs-developer, Michael S. Tsirkin, Jason Wang, Al Viro

The 9p protocol mostly relies on a request/reply dialog between the
client and the server. A notable exception to this rule is request
cancellation (ie, flush in 9p wording): when the client requests an
in-flight request to be flushed, the server should only reply to the
flush request and not to the flushed in-flight request (otherwise it
considers the in-flight request to have completed just like it has
never been flushed).

It is up to the client to inform the transport that the in-flight request
has been flushed and won't receive a reply. This is achieved with the
'cancelled' operation of the struct p9_trans_module.

This operation isn't currently implemented with the virtio transport.
As a consequence, flushed requests leave buffers in the used list
forever and the virtqueue ends up in being able to process only one
request at a time.

This issue never popped up because the 9p server in QEMU had a bug
and would always reply to flushed requests. But this will be fixed
soon, so it is time to implement the 'cancelled' operation in the
9p virtio transport.

--
Greg

---

Greg Kurz (2):
      virtio: allow to detach a buffer from the virtqueue
      9p/trans_virtio: implement cancelled callback


 drivers/virtio/virtio_ring.c |   28 ++++++++++++++++++++++++++++
 include/linux/virtio.h       |    1 +
 net/9p/trans_virtio.c        |   18 ++++++++++++++++++
 3 files changed, 47 insertions(+)

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-01-20  9:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-20 17:46 [PATCH 0/2] 9p/trans_virtio: handle request cancellation Greg Kurz
2017-12-20 17:46 ` [PATCH 1/2] virtio: allow to detach a buffer from the virtqueue Greg Kurz
2018-01-19 19:49   ` Michael S. Tsirkin
2018-01-20  9:20     ` Greg Kurz
2017-12-20 17:46 ` [PATCH 2/2] 9p/trans_virtio: implement cancelled callback Greg Kurz
2018-01-08  9:18 ` [PATCH 0/2] 9p/trans_virtio: handle request cancellation Greg Kurz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).