From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Roedel, Joerg" Subject: Re: [PATCH v5] KVM: VMX: Execute WBINVD to keep data consistency with assigned devices Date: Tue, 29 Jun 2010 12:14:04 +0200 Message-ID: <20100629101403.GB1788@amd.com> References: <4C286CCE.10309@redhat.com> <1277781419-13227-1-git-send-email-sheng@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Cc: Avi Kivity , Marcelo Tosatti , Jan Kiszka , "kvm@vger.kernel.org" , "Yaozu (Eddie) Dong" To: Sheng Yang Return-path: Received: from tx2ehsobe005.messaging.microsoft.com ([65.55.88.15]:24797 "EHLO TX2EHSOBE010.bigfish.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754996Ab0F2KfX (ORCPT ); Tue, 29 Jun 2010 06:35:23 -0400 Content-Disposition: inline In-Reply-To: <1277781419-13227-1-git-send-email-sheng@linux.intel.com> Sender: kvm-owner@vger.kernel.org List-ID: 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. Joerg