On 5/17/26 16:01, Demi Marie Obenour wrote: > I'm working on a virtio-vhost-user implementation. Part of that > implementation is a vhost-user server. From reading the vhost-user > spec, there are situations where correct behavior is unclear: > > 1. It isn't clear whether a given guest physical address or > user address is guaranteed to be in at most one memory region. > Having it in more than one seems very illogical and confusing: > what does a given address mean in this case? However, I don't > see anything forbidding it. > > 2. Are there any alignment requirements on addresses and memory region > sizes? Is it reasonable to assume that they will be page aligned? > > 3. What is the minimum alignment of the fields in IOTLB messages? > > 4. What is the recommended data structure for an IOTLB? Having to > maintain a full page table (the way hardware would) seems both > memory-intensive and slow. > > 5. Is it possible to transparently implement an IOTLB in a proxy?
Other questions:
6. Are empty memory regions forbidden?
7. Can I assume that on Linux, the frontend will always send an
eventfd instead of a pipe for notification FDs? My current
implementation checks that the server sent an eventfd.
8. Will the frontend always unmap an existing IOTLB entry before
creating a new one?
9. How important is postcopy live migration? The virtio-vhost-user
device has a hard time implementing it. The backend may well be
shared by multiple frontends and the userfaultfd would allow the
frontend to stall backend memory accesses indefinitely.
Precopy live migration avoids this problem because the backend’s
memory accesses are never blocked on the frontend.
10. Is the frontend allowed to send an inbound migration FD more than
once in the lifetime of the backend? What about an outbound
migration FD? Can there be more than one migration FD open
at once?
11. Which vhost-user protocol features are the most important?
In particular, is it okay to not support features that require the
backend to send file descriptors to the frontend? In the future,
I would like for virtio-vhost-user to support external objects,
but that will come significantly later.
12. How important is zero-copy for live migration data send and
receive? The current plan for virtio-vhost-user is to just use a
pipe and accept the extra copies. The VM implementing the device
is not trusted.
--
Sincerely,
Demi Marie Obenour (she/her/hers)
OpenPGP_0xB288B55FFF9C22C1.asc
Description: OpenPGP public key
OpenPGP_signature.asc
Description: OpenPGP digital signature
