This series aims at specifying ans implementing the protocol update required to support device IOTLB with user backends.
In this second non-RFC version, main changes are: - spec fixes and clarification - rings information update has been restored back to ring enablement time - Work around GCC 4.4.7 limitation wrt assignment in unnamed union at declaration time. The series can be tested with vhost_iotlb_proto_v2 branch on my gitlab account[0]. The slave requests channel part is re-used from Marc-André's series submitted last year[1], with main changes from original version being request/feature names renaming and addition of the REPLY_ACK feature support. Regarding IOTLB protocol, one noticeable change is the IOTLB miss request reply made optionnal (i.e. only if slave requests it by setting the VHOST_USER_NEED_REPLY flag in the message header). This change provides more flexibility in the backend implementation of the feature. The protocol is very close to kernel backends, except that a new communication channel is introduced to enable the slave to send requests to the master. [0]: https://gitlab.com/mcoquelin/dpdk-next-virtio/commits/vhost_iotlb_proto_v2 [1]: https://lists.gnu.org/archive/html/qemu-devel/2016-04/msg00095.html Marc-André Lureau (2): vhost-user: add vhost_user to hold the chr vhost-user: add slave-req-fd support Maxime Coquelin (4): vhost: propagate errors in vhost_device_iotlb_miss() vhost: rework IOTLB messaging vhost: extend ring information update for IOTLB to all rings spec/vhost-user spec: Add IOMMU support docs/specs/vhost-user.txt | 118 ++++++++++++++++++++++++- hw/virtio/vhost-backend.c | 130 ++++++++++++++++------------ hw/virtio/vhost-user.c | 177 +++++++++++++++++++++++++++++++++++++- hw/virtio/vhost.c | 27 ++++-- include/hw/virtio/vhost-backend.h | 23 +++-- include/hw/virtio/vhost.h | 2 +- 6 files changed, 397 insertions(+), 80 deletions(-) -- 2.9.4