All of lore.kernel.org
 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 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.