2019-06-04 10:11:15 +02:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 10:35:47 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-17 00:29:49 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
vhost/vsock: add IOTLB API support
This patch enables the IOTLB API support for vhost-vsock devices,
allowing the userspace to emulate an IOMMU for the guest.
These changes were made following vhost-net, in details this patch:
- exposes VIRTIO_F_ACCESS_PLATFORM feature and inits the iotlb
device if the feature is acked
- implements VHOST_GET_BACKEND_FEATURES and
VHOST_SET_BACKEND_FEATURES ioctls
- calls vq_meta_prefetch() before vq processing to prefetch vq
metadata address in IOTLB
- provides .read_iter, .write_iter, and .poll callbacks for the
chardev; they are used by the userspace to exchange IOTLB messages
This patch was tested specifying "intel_iommu=strict" in the guest
kernel command line. I used QEMU with a patch applied [1] to fix a
simple issue (that patch was merged in QEMU v5.2.0):
$ qemu -M q35,accel=kvm,kernel-irqchip=split \
-drive file=fedora.qcow2,format=qcow2,if=virtio \
-device intel-iommu,intremap=on,device-iotlb=on \
-device vhost-vsock-pci,guest-cid=3,iommu_platform=on,ats=on
[1] https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg09077.html
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Link: https://lore.kernel.org/r/20201223143638.123417-1-sgarzare@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
2020-12-23 15:36:38 +01:00
|
|
|
|
2021-06-11 14:13:37 +03:00
|
|
|
|
|
|
|
|
|
vhost/vsock: add IOTLB API support
This patch enables the IOTLB API support for vhost-vsock devices,
allowing the userspace to emulate an IOMMU for the guest.
These changes were made following vhost-net, in details this patch:
- exposes VIRTIO_F_ACCESS_PLATFORM feature and inits the iotlb
device if the feature is acked
- implements VHOST_GET_BACKEND_FEATURES and
VHOST_SET_BACKEND_FEATURES ioctls
- calls vq_meta_prefetch() before vq processing to prefetch vq
metadata address in IOTLB
- provides .read_iter, .write_iter, and .poll callbacks for the
chardev; they are used by the userspace to exchange IOTLB messages
This patch was tested specifying "intel_iommu=strict" in the guest
kernel command line. I used QEMU with a patch applied [1] to fix a
simple issue (that patch was merged in QEMU v5.2.0):
$ qemu -M q35,accel=kvm,kernel-irqchip=split \
-drive file=fedora.qcow2,format=qcow2,if=virtio \
-device intel-iommu,intremap=on,device-iotlb=on \
-device vhost-vsock-pci,guest-cid=3,iommu_platform=on,ats=on
[1] https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg09077.html
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Link: https://lore.kernel.org/r/20201223143638.123417-1-sgarzare@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
2020-12-23 15:36:38 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 17:33:22 +00:00
|
|
|
|
2018-11-05 10:35:47 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 17:33:22 +00:00
|
|
|
|
2018-11-05 10:35:47 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-11 14:13:37 +03:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 17:33:22 +00:00
|
|
|
|
2018-11-05 10:35:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 10:35:47 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-03-09 08:26:03 +05:30
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2018-03-09 08:26:03 +05:30
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-17 00:29:51 -04:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-31 21:27:57 +02:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
vhost/vsock: add IOTLB API support
This patch enables the IOTLB API support for vhost-vsock devices,
allowing the userspace to emulate an IOMMU for the guest.
These changes were made following vhost-net, in details this patch:
- exposes VIRTIO_F_ACCESS_PLATFORM feature and inits the iotlb
device if the feature is acked
- implements VHOST_GET_BACKEND_FEATURES and
VHOST_SET_BACKEND_FEATURES ioctls
- calls vq_meta_prefetch() before vq processing to prefetch vq
metadata address in IOTLB
- provides .read_iter, .write_iter, and .poll callbacks for the
chardev; they are used by the userspace to exchange IOTLB messages
This patch was tested specifying "intel_iommu=strict" in the guest
kernel command line. I used QEMU with a patch applied [1] to fix a
simple issue (that patch was merged in QEMU v5.2.0):
$ qemu -M q35,accel=kvm,kernel-irqchip=split \
-drive file=fedora.qcow2,format=qcow2,if=virtio \
-device intel-iommu,intremap=on,device-iotlb=on \
-device vhost-vsock-pci,guest-cid=3,iommu_platform=on,ats=on
[1] https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg09077.html
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Link: https://lore.kernel.org/r/20201223143638.123417-1-sgarzare@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
2020-12-23 15:36:38 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-17 00:29:51 -04:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
2023-09-16 16:09:15 +03:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-07-30 17:43:33 +02:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
2019-07-30 17:43:33 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-15 20:25:47 -04:00
|
|
|
|
2023-09-16 16:09:15 +03:00
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2019-07-30 17:43:33 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
2019-07-30 17:43:33 +02:00
|
|
|
|
2021-06-11 14:13:37 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-03 15:31:06 +03:00
|
|
|
|
2021-09-03 15:32:35 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-11 14:13:37 +03:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
2021-09-03 15:32:35 +03:00
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
2021-09-03 15:32:35 +03:00
|
|
|
|
|
|
|
|
|
2021-06-11 14:13:37 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-07-30 17:43:33 +02:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-16 16:09:15 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-04-24 17:08:29 +02:00
|
|
|
|
|
|
|
|
|
2017-04-21 10:10:46 +01:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2017-04-21 10:10:46 +01:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2020-04-24 17:08:29 +02:00
|
|
|
|
|
|
|
|
|
2023-09-16 16:09:15 +03:00
|
|
|
|
2019-07-30 17:43:33 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-16 16:09:15 +03:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2021-06-11 14:13:37 +03:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2020-04-24 17:08:30 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
2019-07-30 17:43:33 +02:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2019-07-30 17:43:33 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-07-30 21:43:07 +02:00
|
|
|
|
2019-07-30 17:43:33 +02:00
|
|
|
|
2019-05-17 00:29:51 -04:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2018-11-05 10:35:47 +00:00
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2018-11-05 10:35:47 +00:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2023-06-26 18:22:58 -05:00
|
|
|
|
2018-11-05 10:35:47 +00:00
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-15 09:32:15 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 10:35:47 +00:00
|
|
|
|
2017-03-15 09:32:15 +08:00
|
|
|
|
2018-11-05 10:35:47 +00:00
|
|
|
|
|
|
|
|
|
2017-03-15 09:32:15 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 10:35:47 +00:00
|
|
|
|
2017-03-15 09:32:15 +08:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2017-03-15 09:32:15 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 10:35:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-15 09:32:15 +08:00
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
2022-09-15 20:25:47 -04:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-10 22:15:17 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-11 14:13:37 +03:00
|
|
|
|
|
|
|
|
|
2019-11-14 10:57:40 +01:00
|
|
|
|
|
|
|
|
|
2019-11-14 10:57:48 +01:00
|
|
|
|
|
|
|
|
|
2019-11-14 10:57:40 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-11 14:13:37 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-10 22:15:17 +03:00
|
|
|
|
|
|
|
|
|
2019-11-14 10:57:40 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-11-14 10:57:42 +01:00
|
|
|
|
2023-12-14 15:52:29 +03:00
|
|
|
|
2019-11-14 10:57:40 +01:00
|
|
|
|
2024-07-30 21:43:07 +02:00
|
|
|
|
|
|
|
|
|
2023-03-27 19:11:51 +00:00
|
|
|
|
2019-11-14 10:57:40 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-11 14:13:37 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-17 00:29:51 -04:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-31 21:27:57 +02:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
vhost/vsock: add IOTLB API support
This patch enables the IOTLB API support for vhost-vsock devices,
allowing the userspace to emulate an IOMMU for the guest.
These changes were made following vhost-net, in details this patch:
- exposes VIRTIO_F_ACCESS_PLATFORM feature and inits the iotlb
device if the feature is acked
- implements VHOST_GET_BACKEND_FEATURES and
VHOST_SET_BACKEND_FEATURES ioctls
- calls vq_meta_prefetch() before vq processing to prefetch vq
metadata address in IOTLB
- provides .read_iter, .write_iter, and .poll callbacks for the
chardev; they are used by the userspace to exchange IOTLB messages
This patch was tested specifying "intel_iommu=strict" in the guest
kernel command line. I used QEMU with a patch applied [1] to fix a
simple issue (that patch was merged in QEMU v5.2.0):
$ qemu -M q35,accel=kvm,kernel-irqchip=split \
-drive file=fedora.qcow2,format=qcow2,if=virtio \
-device intel-iommu,intremap=on,device-iotlb=on \
-device vhost-vsock-pci,guest-cid=3,iommu_platform=on,ats=on
[1] https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg09077.html
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Link: https://lore.kernel.org/r/20201223143638.123417-1-sgarzare@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
2020-12-23 15:36:38 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2019-05-17 00:29:51 -04:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-08-04 14:52:53 +01:00
|
|
|
|
2017-04-21 10:10:46 +01:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-21 10:10:46 +01:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
|
|
|
|
|
2019-12-06 15:39:12 +01:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2021-11-22 17:35:24 +01:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2019-05-17 00:29:51 -04:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-19 10:43:53 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-19 10:43:53 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-31 21:27:57 +02:00
|
|
|
|
|
|
|
|
|
2017-01-19 10:43:53 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-01 12:38:40 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-26 18:22:58 -05:00
|
|
|
|
2020-05-01 12:38:40 +08:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-31 21:27:57 +02:00
|
|
|
|
2017-01-19 10:43:53 +00:00
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2017-01-19 10:43:53 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
2020-03-31 21:27:57 +02:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-02-22 10:47:42 +01:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
2022-02-22 10:47:42 +01:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-02-22 10:47:42 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-31 21:27:57 +02:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-02 13:50:42 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-12 14:36:45 -07:00
|
|
|
|
2017-05-08 15:57:15 -07:00
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-09 13:29:10 +00:00
|
|
|
|
2024-04-22 10:03:13 -04:00
|
|
|
|
2017-11-09 13:29:10 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-17 00:29:49 -04:00
|
|
|
|
|
|
|
|
|
2020-05-29 16:02:58 +08:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-05-17 13:08:50 -05:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-12-06 19:14:34 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-27 18:48:21 -04:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 17:33:22 +00:00
|
|
|
|
2018-11-05 10:35:47 +00:00
|
|
|
|
|
|
|
|
|
2018-11-05 17:33:22 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2018-11-05 10:35:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
2022-03-11 11:00:16 +09:00
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2022-02-22 10:47:42 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-13 22:21:37 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2017-12-25 00:08:58 +08:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-11-14 10:57:50 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2018-11-05 17:33:22 +00:00
|
|
|
|
2018-11-05 10:35:47 +00:00
|
|
|
|
2016-12-14 19:24:36 +08:00
|
|
|
|
2018-11-05 17:33:22 +00:00
|
|
|
|
2016-12-14 19:24:36 +08:00
|
|
|
|
|
|
|
|
|
2018-11-05 10:35:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
2019-01-08 16:07:03 +08:00
|
|
|
|
2018-11-05 17:33:22 +00:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vhost/vsock: add IOTLB API support
This patch enables the IOTLB API support for vhost-vsock devices,
allowing the userspace to emulate an IOMMU for the guest.
These changes were made following vhost-net, in details this patch:
- exposes VIRTIO_F_ACCESS_PLATFORM feature and inits the iotlb
device if the feature is acked
- implements VHOST_GET_BACKEND_FEATURES and
VHOST_SET_BACKEND_FEATURES ioctls
- calls vq_meta_prefetch() before vq processing to prefetch vq
metadata address in IOTLB
- provides .read_iter, .write_iter, and .poll callbacks for the
chardev; they are used by the userspace to exchange IOTLB messages
This patch was tested specifying "intel_iommu=strict" in the guest
kernel command line. I used QEMU with a patch applied [1] to fix a
simple issue (that patch was merged in QEMU v5.2.0):
$ qemu -M q35,accel=kvm,kernel-irqchip=split \
-drive file=fedora.qcow2,format=qcow2,if=virtio \
-device intel-iommu,intremap=on,device-iotlb=on \
-device vhost-vsock-pci,guest-cid=3,iommu_platform=on,ats=on
[1] https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg09077.html
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Link: https://lore.kernel.org/r/20201223143638.123417-1-sgarzare@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
2020-12-23 15:36:38 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-10 10:44:45 +08:00
|
|
|
|
vhost/vsock: add IOTLB API support
This patch enables the IOTLB API support for vhost-vsock devices,
allowing the userspace to emulate an IOMMU for the guest.
These changes were made following vhost-net, in details this patch:
- exposes VIRTIO_F_ACCESS_PLATFORM feature and inits the iotlb
device if the feature is acked
- implements VHOST_GET_BACKEND_FEATURES and
VHOST_SET_BACKEND_FEATURES ioctls
- calls vq_meta_prefetch() before vq processing to prefetch vq
metadata address in IOTLB
- provides .read_iter, .write_iter, and .poll callbacks for the
chardev; they are used by the userspace to exchange IOTLB messages
This patch was tested specifying "intel_iommu=strict" in the guest
kernel command line. I used QEMU with a patch applied [1] to fix a
simple issue (that patch was merged in QEMU v5.2.0):
$ qemu -M q35,accel=kvm,kernel-irqchip=split \
-drive file=fedora.qcow2,format=qcow2,if=virtio \
-device intel-iommu,intremap=on,device-iotlb=on \
-device vhost-vsock-pci,guest-cid=3,iommu_platform=on,ats=on
[1] https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg09077.html
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Link: https://lore.kernel.org/r/20201223143638.123417-1-sgarzare@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
2020-12-23 15:36:38 +01:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
2024-04-22 10:03:13 -04:00
|
|
|
|
2021-06-11 14:13:37 +03:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vhost/vsock: add IOTLB API support
This patch enables the IOTLB API support for vhost-vsock devices,
allowing the userspace to emulate an IOMMU for the guest.
These changes were made following vhost-net, in details this patch:
- exposes VIRTIO_F_ACCESS_PLATFORM feature and inits the iotlb
device if the feature is acked
- implements VHOST_GET_BACKEND_FEATURES and
VHOST_SET_BACKEND_FEATURES ioctls
- calls vq_meta_prefetch() before vq processing to prefetch vq
metadata address in IOTLB
- provides .read_iter, .write_iter, and .poll callbacks for the
chardev; they are used by the userspace to exchange IOTLB messages
This patch was tested specifying "intel_iommu=strict" in the guest
kernel command line. I used QEMU with a patch applied [1] to fix a
simple issue (that patch was merged in QEMU v5.2.0):
$ qemu -M q35,accel=kvm,kernel-irqchip=split \
-drive file=fedora.qcow2,format=qcow2,if=virtio \
-device intel-iommu,intremap=on,device-iotlb=on \
-device vhost-vsock-pci,guest-cid=3,iommu_platform=on,ats=on
[1] https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg09077.html
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Link: https://lore.kernel.org/r/20201223143638.123417-1-sgarzare@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
2020-12-23 15:36:38 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-02-22 10:47:42 +01:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vhost/vsock: add IOTLB API support
This patch enables the IOTLB API support for vhost-vsock devices,
allowing the userspace to emulate an IOMMU for the guest.
These changes were made following vhost-net, in details this patch:
- exposes VIRTIO_F_ACCESS_PLATFORM feature and inits the iotlb
device if the feature is acked
- implements VHOST_GET_BACKEND_FEATURES and
VHOST_SET_BACKEND_FEATURES ioctls
- calls vq_meta_prefetch() before vq processing to prefetch vq
metadata address in IOTLB
- provides .read_iter, .write_iter, and .poll callbacks for the
chardev; they are used by the userspace to exchange IOTLB messages
This patch was tested specifying "intel_iommu=strict" in the guest
kernel command line. I used QEMU with a patch applied [1] to fix a
simple issue (that patch was merged in QEMU v5.2.0):
$ qemu -M q35,accel=kvm,kernel-irqchip=split \
-drive file=fedora.qcow2,format=qcow2,if=virtio \
-device intel-iommu,intremap=on,device-iotlb=on \
-device vhost-vsock-pci,guest-cid=3,iommu_platform=on,ats=on
[1] https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg09077.html
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Link: https://lore.kernel.org/r/20201223143638.123417-1-sgarzare@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
2020-12-23 15:36:38 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vhost/vsock: add IOTLB API support
This patch enables the IOTLB API support for vhost-vsock devices,
allowing the userspace to emulate an IOMMU for the guest.
These changes were made following vhost-net, in details this patch:
- exposes VIRTIO_F_ACCESS_PLATFORM feature and inits the iotlb
device if the feature is acked
- implements VHOST_GET_BACKEND_FEATURES and
VHOST_SET_BACKEND_FEATURES ioctls
- calls vq_meta_prefetch() before vq processing to prefetch vq
metadata address in IOTLB
- provides .read_iter, .write_iter, and .poll callbacks for the
chardev; they are used by the userspace to exchange IOTLB messages
This patch was tested specifying "intel_iommu=strict" in the guest
kernel command line. I used QEMU with a patch applied [1] to fix a
simple issue (that patch was merged in QEMU v5.2.0):
$ qemu -M q35,accel=kvm,kernel-irqchip=split \
-drive file=fedora.qcow2,format=qcow2,if=virtio \
-device intel-iommu,intremap=on,device-iotlb=on \
-device vhost-vsock-pci,guest-cid=3,iommu_platform=on,ats=on
[1] https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg09077.html
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Link: https://lore.kernel.org/r/20201223143638.123417-1-sgarzare@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
2020-12-23 15:36:38 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-11 17:23:00 +02:00
|
|
|
|
vhost/vsock: add IOTLB API support
This patch enables the IOTLB API support for vhost-vsock devices,
allowing the userspace to emulate an IOMMU for the guest.
These changes were made following vhost-net, in details this patch:
- exposes VIRTIO_F_ACCESS_PLATFORM feature and inits the iotlb
device if the feature is acked
- implements VHOST_GET_BACKEND_FEATURES and
VHOST_SET_BACKEND_FEATURES ioctls
- calls vq_meta_prefetch() before vq processing to prefetch vq
metadata address in IOTLB
- provides .read_iter, .write_iter, and .poll callbacks for the
chardev; they are used by the userspace to exchange IOTLB messages
This patch was tested specifying "intel_iommu=strict" in the guest
kernel command line. I used QEMU with a patch applied [1] to fix a
simple issue (that patch was merged in QEMU v5.2.0):
$ qemu -M q35,accel=kvm,kernel-irqchip=split \
-drive file=fedora.qcow2,format=qcow2,if=virtio \
-device intel-iommu,intremap=on,device-iotlb=on \
-device vhost-vsock-pci,guest-cid=3,iommu_platform=on,ats=on
[1] https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg09077.html
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Link: https://lore.kernel.org/r/20201223143638.123417-1-sgarzare@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
2020-12-23 15:36:38 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-05-10 10:19:18 -04:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-11-14 10:57:46 +01:00
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
2022-11-08 10:17:05 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-11-14 10:57:46 +01:00
|
|
|
|
2016-07-28 15:36:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-05-10 10:19:18 -04:00
|
|
|
|
|
|
|
|
|