From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: Paravirt KVM capabilities Date: Wed, 10 Jan 2007 13:03:09 +0200 Message-ID: <45A4C7ED.8090003@qumranet.com> References: <20070109141916.GA13276@vlad.carfax.org.uk> <45A3A642.1030604@qumranet.com> <1168384852.19646.161.camel@localhost.localdomain> <20070110094750.GA934@elte.hu> <45A4BB74.9010102@redhat.com> <20070110101839.GA6444@elte.hu> <45A4C345.5050404@qumranet.com> <20070110105202.GA13412@elte.hu> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Return-path: To: Ingo Molnar In-Reply-To: <20070110105202.GA13412-X9Un+BFzKDI@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 Ingo Molnar wrote: > * Avi Kivity wrote: > > >> If you have a CONFIG_PARAVIRT guest, I believe it will always be >> faster to run it without hardware assisted virtualization: >> >> - you cannot eliminate vmexits due to host interrupts >> - a hypercall will (probably) keep being more expensive than a syscall; >> it simply has a lot more work to do >> - cr3 switches for CONFIG_PARAVIRT syscalls (which are necessary on >> x86_64) will probably become very cheap with tagged tlbs >> > > but irq overhead is nothing in importance compared to basic syscall > overhead. KVM/HVM already runs guest kernel syscalls at native speed. > KVM/LL (or Xen) has to switch cr3s to enter guest kernel context, and > has to switch it back to get back to guest user context. It might be > pretty fast with tagged TLBs, but not zero-cost. > For i386 Xen does not switch cr3 IIRC. Perhaps even not for x86_64 if it can use the segment limits which AMD re-added (I think it does?) I think for i386 Xen does not go through the hypervisor at all: it hacks int 0x80 to trap directly to ring 1. So there's still the overhead of using int rather than sysenter, but not much more. I don't know how the (many syscalls) x (smaller overhead) vs (fewer interrupts) x (greater overhead) stack up. -- error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV