Messages in this thread | | | Subject | Re: [PATCH 0/2] virtio: decouple protected guest RAM form VIRTIO_F_IOMMU_PLATFORM | From | Jason Wang <> | Date | Tue, 25 Feb 2020 11:38:34 +0800 |
| |
On 2020/2/24 下午9:40, Michael S. Tsirkin wrote: >> Subject: [PATCH] vhost: do not set VIRTIO_F_IOMMU_PLATFORM when IOMMU is not >> used >> >> We enable device IOTLB unconditionally when VIRTIO_F_IOMMU_PLATFORM is >> negotiated. This lead unnecessary IOTLB miss/update transactions when >> IOMMU is used. This patch fixes this. >> >> Signed-off-by: Jason Wang<jasowang@redhat.com> >> --- >> hw/net/virtio-net.c | 3 +++ >> hw/virtio/vhost.c | 4 +--- >> 2 files changed, 4 insertions(+), 3 deletions(-) >> >> diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c >> index 3627bb1717..0d50e8bd34 100644 >> --- a/hw/net/virtio-net.c >> +++ b/hw/net/virtio-net.c >> @@ -879,6 +879,9 @@ static void virtio_net_set_features(VirtIODevice *vdev, uint64_t features) >> virtio_net_apply_guest_offloads(n); >> } >> >> + if (vdev->dma_as == &address_space_memory) >> + features &= ~(1ULL << VIRTIO_F_IOMMU_PLATFORM); >> + >> for (i = 0; i < n->max_queues; i++) { >> NetClientState *nc = qemu_get_subqueue(n->nic, i); > This pokes at acked features. I think they are also > guest visible ...
It's the acked features of vhost device, so I guess not?
E.g virtio_set_features_nocheck() did:
val &= vdev->host_features; if (k->set_features) { k->set_features(vdev, val); } vdev->guest_features = val;
Thanks
>
| |