On 16/06/16 11:43, Alexey Kardashevskiy wrote: > On 16/06/16 01:56, Alex Williamson wrote: >> VT-d emulation is currently incompatible with device assignment due >> to intel_iommu's lack of support for memory_region_notify_iommu(). >> Alexey has proposed a nice addition to the MemoryRegionIOMMUOps >> structure that adds callbacks when the first iommu notifier is >> registered and the last is removed. For POWER this will allow them >> to switch the view of the iommu depending on whether anyone in >> userspace is watching. For VT-d I expect that eventually we'll use >> these callbacks to enable and disable code paths so that we avoid >> notifier overhead when there are no registered notifiy-ees. For now, >> we don't support calling memory_region_notify_iommu(), so this >> signals an incompatible hardware configuration. If we choose to make >> CM=0 a user selectable option, something like this might continue to >> be useful if we only support notifies via invalidations rather than >> full VT-d data structure shadowing. >> >> Even though we're currently working on enabling users like vfio-pci >> with VT-d, I believe this is correct for the current state of things. >> We might even want to consider this stable for v2.6.x so that >> downstreams pick it up to avoid incompatible configurations. >> >> Alexey, I hope I'm not stepping on your toes by extracting this >> from your latest patch series. Please let us know whether you >> approve. Thanks, > > I am totally fine with either way of accepting my patches, after all the > idea was yours, I just put it in the code :)
Alex, when are you planning on sending pull request with this patch? I am asking as I'd prefer to respin "spapr_pci/spapr_pci_vfio: Support Dynamic DMA" on top of it (assuming David rebases his queue on top of it) and avoid doing unnecessary work. Thanks. > > >> >> Alex >> >> --- >> >> Alex Williamson (1): >> intel_iommu: Throw hw_error on notify_started >> >> Alexey Kardashevskiy (1): >> memory: Add MemoryRegionIOMMUOps.notify_started/stopped callbacks >> >> >> hw/i386/intel_iommu.c | 12 ++++++++++++ >> hw/vfio/common.c | 5 +++-- >> include/exec/memory.h | 8 +++++++- >> memory.c | 10 +++++++++- >> 4 files changed, 31 insertions(+), 4 deletions(-) -- Alexey