[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: vsock: device expects at least 4 KB buffers in the rx virtqueue
Hi,
following the discussion with Michael [1], the device emulation
implemented in vhost-vsock made an assumption on buffers at least 4 KB
in the rx virtqueue.
This patch [2] removed the assumption unintentionally, but vhost-vsock
modules released before Linux v5.4 still have this limitation.
The current implementation continues to use 4 KB buffers, so for now, we
are backward compatible, but we should add something in the
specifications.
I'm not sure how to proceed, my ideas are the following:
1. Add a note like this:
diff --git a/virtio-vsock.tex b/virtio-vsock.tex
index da7e641..4c8f65d 100644
--- a/virtio-vsock.tex
+++ b/virtio-vsock.tex
@@ -198,6 +198,9 @@ \subsubsection{Receive and Transmit}\label{sec:Device Types / Socket Device / De
Virtqueue buffers for outgoing packets are read-only. Virtqueue buffers for
incoming packets are write-only.
+Note: The device implementation (vhost-vsock) in Linux prior to v5.4 requires
+that the receive buffers in the rx virtqueue MUST be at least 4KBytes.
+
\drivernormative{\paragraph}{Device Operation: Receive and Transmit}{Device Types / Socket Device / Device Operation / Receive and Transmit}
The \field{guest_cid} configuration field MUST be used as the source CID when
2. Add a new feature to tell that the device supports any buffer size in
the rx queue
3. Add a new feature to support mergeable buffers (in my plans),
avoiding the feature at point 2
Any suggestion?
Thanks,
Stefano
[1] https://lkml.org/lkml/2019/9/2/676
[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6dbd3e66e7785a2f055bf84d98de9b8fd31ff3f5
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]