[Qemu-devel] [PATCH v3 0/5] vhost-user: Specify and implement device IOTLB support

Maxime Coquelin posted 5 patches 6 years, 10 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170602101831.26576-1-maxime.coquelin@redhat.com
Test FreeBSD passed
Test checkpatch passed
Test docker passed
Test s390x passed
docs/specs/vhost-user.txt         | 116 ++++++++++++++++++++++-
hw/net/vhost_net.c                |   1 +
hw/virtio/vhost-backend.c         | 130 ++++++++++++++-----------
hw/virtio/vhost-user.c            | 194 ++++++++++++++++++++++++++++++++++++--
hw/virtio/vhost.c                 |  19 ++--
include/hw/virtio/vhost-backend.h |  23 +++--
include/hw/virtio/vhost.h         |   2 +-
7 files changed, 404 insertions(+), 81 deletions(-)
[Qemu-devel] [PATCH v3 0/5] vhost-user: Specify and implement device IOTLB support
Posted by Maxime Coquelin 6 years, 10 months ago
This series aims at specifying ans implementing the protocol update
required to support device IOTLB with user backends.

In this third non-RFC version, main change is mandating the slave to be able
to send IOTLB miss requests for any addresses it needs to access. It implies
the removal of patch 3, which is no more necessary, and the related spec
update in patch 6. Also, a check is added in vhost-user init to ensure that
the slave does not advertise VIRTIO_F_IOMMU_PLATFORM if it does not support
both VHOST_USER_PROTOCOL_F_SLAVE_REQ and VHOST_USER_PROTOCOL_F_REPLY_ACK
protcol features.

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.

[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 (3):
  vhost: propagate errors in vhost_device_iotlb_miss()
  vhost: rework IOTLB messaging
  spec/vhost-user spec: Add IOMMU support

 docs/specs/vhost-user.txt         | 116 ++++++++++++++++++++++-
 hw/net/vhost_net.c                |   1 +
 hw/virtio/vhost-backend.c         | 130 ++++++++++++++-----------
 hw/virtio/vhost-user.c            | 194 ++++++++++++++++++++++++++++++++++++--
 hw/virtio/vhost.c                 |  19 ++--
 include/hw/virtio/vhost-backend.h |  23 +++--
 include/hw/virtio/vhost.h         |   2 +-
 7 files changed, 404 insertions(+), 81 deletions(-)

-- 
2.9.4