On 2017年01月04日 15:22, Tan, Jianfeng wrote:
Sorry, I forget to reply this comment.
On 12/26/2016 3:44 PM, Yuanhan Liu wrote:
[...]
+
+ /* Does not work when VIRTIO_F_IOMMU_PLATFORM now, why? */
Because this feature need the vhost IOTLB support from the device
emulation. Patches for QEMU hasn't been merged yet, but it has been
there for a while.
Yes. And it's in need of help from QEMU.
Since we don't have the support yet, for sure it won't work. But
I'm wondering why you have to disable it explicitly?
Here we do not have QEMU. Frontend driver talks with vhost-net through
virtio_user_dev. And both ends claim to support
VIRTIO_F_IOMMU_PLATFORM. So this feature bit will be negotiated if we
don't explicitly disable it. In my previous test, it fails in
vhost_init_device_iotlb() of vhost kernel module.
Interesting, vhost_init_device_iotlb() only fail when OOM. Do you meet it?
My guess is that, for this feature, without the help of QEMU, vhost
kernel module cannot work independently.
Technically it can if your userspace supports device IOTLB APIs too.
Or if you're using static mappings, and preset all mappings through
VHOST_IOTLB_UPADATE to make sure no IOTLB misses.
Thanks
Thanks,
Jianfeng