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

Avi Kivity
2010-06-29T10:44:32Z

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?

--
error compiling committee.c: too many arguments to function