From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zachary Amsden Subject: Re: State of current pv_ops backend for KVM? Date: Wed, 30 May 2007 11:02:33 -0700 Message-ID: <465DBC39.7090308@vmware.com> References: <465B87CE.6030801@codemonkey.ws> <1180491861.30202.61.camel@localhost.localdomain> <465CE6AD.7000206@codemonkey.ws> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: kvm-devel To: Anthony Liguori Return-path: In-Reply-To: <465CE6AD.7000206-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org Anthony Liguori wrote: > Rusty Russell wrote: >> On Mon, 2007-05-28 at 20:54 -0500, Anthony Liguori wrote: >> >>> Howdy, >>> >>> Does anyone know what the state of a pv_ops backend for KVM is? I >>> know Ingo has an implementation that implements CR3 caching but I >>> don't see any branches in Avi's git tree. >>> >>> Perhaps we should try for a simple pv_ops backend for 2.6.23 seeing >>> as how the host infrastructure is there? I'd be willing to do some >>> leg work here... >>> >> >> "Me too". It's at least worth toying with the mmu batching stuff to see >> if that can shave some cycles there: it seems that cr3 caching is the >> main win for context switch so batching there won't help. >> > > I'm working on a simple patch that just adds the infrastructure. > >> IIRC Ingo used a magic MSR to detect kvm, and there was a question mark >> over that. > > I am not too worried about using an MSR. There's really no fool proof > method here. The only thing to do IMHO is move the kvm pv_ops backend > into a separate file and add appropriate Kconfig stuff. > >> VMI uses a different technique, which is probably worth >> considering... >> > > VMI can determine that it's under VMware since VMware has to publish > an option ROM. It's quite neat, but overkill for what we're doing > (since we're not going to be using a ROM anyway). The near to being blessed way to do this is to use a CPUID leaf (I believe it is 0x40000000) to identify the hypervisor. I don't have the exact details, but making CPUID 0x40000000 return 'KVMKVMKVMKVM' sounds like a pretty safe detection technique. We're probably dropping the ROM probing in favor of this for 64-bit. Zach ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/