From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Huang Subject: Re: [PATCH] clflush instruction emulation Date: Thu, 15 Apr 2010 12:25:11 -0500 Message-ID: <4BC74BF7.1040000@amd.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: "'xen-devel@lists.xensource.com'" List-Id: xen-devel@lists.xenproject.org WBINVD is a bit heavy since it flushes all caches. I saw 1170 times of CLFLUSH during FreeBSD booting. After guest boots, 0 was observed. 1170 is not huge though. -Wei Keir Fraser wrote: > On 15/04/2010 17:38, "Wei Huang" wrote: > > >> I created a patch which enables clflush emulation. I have verified that >> this patch solves FreeBSD issue. This patch returns immediately without >> doing anything. Note that we don't have to intercept clflush in SVM. So >> the only time we have page_fault for clflush instruction is when guest >> VM flushes MMIO space. In this case, do we need to send this command >> over to QEMU? I didn't do it in this patch anyway. >> > > I don't think we need to anything since all guest reads/writes to the mmio > space will get intercepted to qemu, and hence qemu's view of the space is > coherent with the guest with no need for special handling of CLFLUSH. > > Still the emulator should call out and let the caller decide what to do. We > could safely turn CLFLUSH into WBINVD (i.e., call the existing wbinvd hook). > Do you know if these CLFLUSH emulations happen often or only very rarely? > That might help us decide how smart we need to be about emulating CLFLUSH > (i.e., add a hook specifically for clflush, separately from wbinvd). > > -- Keir > > > >