Re: [PATCH v5] KVM: VMX: Execute WBINVD to keep data consistency with assigned devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jun 29, 2010 at 06:44:25AM -0400, Avi Kivity wrote:
> On 06/29/2010 01:14 PM, Roedel, Joerg wrote:
> > On Mon, Jun 28, 2010 at 11:16:59PM -0400, Sheng Yang wrote:
> >    
> >> Some guest device driver may leverage the "Non-Snoop" I/O, and explicitly
> >> WBINVD or CLFLUSH to a RAM space. Since migration may occur before WBINVD or
> >> CLFLUSH, we need to maintain data consistency either by:
> >> 1: flushing cache (wbinvd) when the guest is scheduled out if there is no
> >> wbinvd exit, or
> >> 2: execute wbinvd on all dirty physical CPUs when guest wbinvd exits.
> >>      
> > Sorry for jumping in late. This code is not required on AMD platforms
> > because the io-page-tables for the AMD IOMMU have a FC bit (force
> > coherent) that must just be set. The current code does not set this bit
> > but I will prepare a patch for that. This wbinvd emulation code should
> > be avoided where possible.
> >    
> 
> Do you mean, KVM_IOMMU_CACHE_COHERENCY should be set for the AMD IOMMU?

No, as far as I understand it the KVM_IOMMU_CACHE_COHERENCY flag is only
there because there are VT-d IOMMUs that does not support the snoop
force bit. In the AMD IOMMU case all hardware has this feature, the
IOMMU driver just has to use it for IOMMU-API page-tables too. This is
currently not the case. So this is only an IOMMU driver change.

	Joerg


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux