Re: [RFC V2] virtio: Add platform specific DMA API translation for virito devices
From: David Gibson <hidden>
Date: 2018-06-04 08:57:42
On Thu, May 24, 2018 at 08:27:04AM +1000, Benjamin Herrenschmidt wrote:
On Wed, 2018-05-23 at 21:50 +0300, Michael S. Tsirkin wrote:quoted
I re-read that discussion and I'm still unclear on the original question, since I got several apparently conflicting answers. I asked: Why isn't setting VIRTIO_F_IOMMU_PLATFORM on the hypervisor side sufficient?I thought I had replied to this... There are a couple of reasons: - First qemu doesn't know that the guest will switch to "secure mode" in advance. There is no difference between a normal and a secure partition until the partition does the magic UV call to "enter secure mode" and qemu doesn't see any of it. So who can set the flag here ?
This seems weird to me. As a rule HV calls should go through qemu - or be allowed to go directly to KVM *by* qemu. We generally reserve the latter for hot path things. Since this isn't a hot path, having the call handled directly by the kernel seems wrong. Unless a "UV call" is something different I don't know about.
- Second, when using VIRTIO_F_IOMMU_PLATFORM, we also make qemu (or vhost) go through the emulated MMIO for every access to the guest, which adds additional overhead.
-- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson