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

Jan Kiszka
2010-06-29T10:33:12Z

Avi Kivity wrote:
> On 06/29/2010 06:16 AM, 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.
>>
>>
>
> Looks good.
>

There is just the question remaining if we want to add some disable
knob, maybe as an option in the device assignment configuration.

I wonder what the performance impact of this feature is when using CPUs
without wbinvd exiting. Can we afford to enable it unconditionally (in
the presence of pass-through) even if the guest doesn't need it?

Jan

--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux