public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
To: Ingo Molnar <mingo-X9Un+BFzKDI@public.gmane.org>
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: Paravirt KVM capabilities
Date: Wed, 10 Jan 2007 12:43:17 +0200	[thread overview]
Message-ID: <45A4C345.5050404@qumranet.com> (raw)
In-Reply-To: <20070110101839.GA6444-X9Un+BFzKDI@public.gmane.org>

Ingo Molnar wrote:
> * Ulrich Drepper <drepper-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
>
>   
>> Ingo Molnar wrote:
>>     
>>> i really really think KVM and lhype should merge, creating KVM/HVM 
>>> (Hardware Virtual Machine) and KVM/LL (Linux on Linux).
>>>       
>> This is only sufficient if either KVM with paravirt Linux kernels has 
>> no performance penalty or lhype becomes able to execute paravirt Linux 
>> kernels.
>>     
>
> yes, both would be the goal i think. Single kernel image can run as a 
> KVM host, as a KVM/HVM guest [if CPU support] or as a KVM/LL guest [if 
> no CPU support]. There's no hypercall overhead on native kernels, we 
> have binary-patching infrastructure in place to turn them into NOPs. 
> (which makes it quite close to zero-cost)
>
> right now the KVM paravirtualization work we are doing is gradually 
> transitioning KVM/HVM towards KVM/LL in essence, by eliminating all VM 
> exit reasons from KVM/HVM and turning them into hypercalls. Once that 
> has been achieved, KVM/LL could be implemented by an extra ll.c module 
> in drivers/kvm/, which does the cr3 tricks and pagetable maintainance 
> and CPU state save/restore, fault/trap/irq passback (and not much else).
>
> So i see very nice short and long term synergy between native Linux, 
> KVM/HVM guests and KVM/LL guests. What is an hypercall-accelerated 
> driver under KVM/HVM is a paravirtual driver on KVM/LL. What is a 
> hypercall-based speedup for KVM/HVM is a paravirtual facility for 
> KVM/LL. One and the same thing serves both purposes.
>
>   

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

So, in my opinion, CONFIG_PARAVIRT on non-hvm will eventually win on 
pure performance.  Hardware assisted virtualization will be used where 
you wish to run unmodified guests, and where ABI stability is critical.

I won't mind being proved wrong, though.  And of course we should share 
drivers and APIs between the two technologies.

-- 
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

  parent reply	other threads:[~2007-01-10 10:43 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-09 14:19 Paravirt KVM capabilities Hugo Mills
     [not found] ` <20070109141916.GA13276-qdzjUQGjHNdnxAzMjxVBUbVCufUGDwFn@public.gmane.org>
2007-01-09 14:27   ` Avi Kivity
     [not found]     ` <45A3A642.1030604-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-01-09 23:20       ` Rusty Russell
     [not found]         ` <1168384852.19646.161.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-01-10  9:47           ` Ingo Molnar
     [not found]             ` <20070110094750.GA934-X9Un+BFzKDI@public.gmane.org>
2007-01-10 10:09               ` Ulrich Drepper
     [not found]                 ` <45A4BB74.9010102-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2007-01-10 10:18                   ` Ingo Molnar
     [not found]                     ` <20070110101839.GA6444-X9Un+BFzKDI@public.gmane.org>
2007-01-10 10:43                       ` Avi Kivity [this message]
     [not found]                         ` <45A4C345.5050404-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-01-10 10:52                           ` Ingo Molnar
     [not found]                             ` <20070110105202.GA13412-X9Un+BFzKDI@public.gmane.org>
2007-01-10 11:03                               ` Avi Kivity
     [not found]                                 ` <45A4C7ED.8090003-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-01-10 11:14                                   ` Ingo Molnar
     [not found]                                     ` <20070110111442.GA16867-X9Un+BFzKDI@public.gmane.org>
2007-01-10 11:42                                       ` Avi Kivity
2007-01-10 18:00                                       ` Ulrich Drepper
     [not found]                                         ` <45A529DB.4030009-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2007-01-10 18:12                                           ` Avi Kivity
     [not found]                                             ` <45A52C8B.70608-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-01-10 18:27                                               ` Ulrich Drepper
     [not found]                                                 ` <45A53005.30300-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2007-01-10 18:35                                                   ` Avi Kivity
2007-01-10 17:00                                   ` Anthony Liguori
     [not found]                                     ` <45A51BA2.9090005-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2007-01-10 17:23                                       ` Avi Kivity
2007-01-11  0:42                               ` Rusty Russell
     [not found]                                 ` <1168476120.19646.209.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-01-11  0:49                                   ` Ingo Molnar
     [not found]                                     ` <20070111004957.GA3279-X9Un+BFzKDI@public.gmane.org>
2007-01-11  2:39                                       ` Rusty Russell
     [not found]                                         ` <1168483188.19646.241.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-01-11  2:51                                           ` Ingo Molnar
     [not found]                                             ` <20070111025130.GB21368-X9Un+BFzKDI@public.gmane.org>
2007-01-11  3:21                                               ` Rusty Russell
     [not found]                                                 ` <1168485696.19646.250.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-01-11  9:38                                                   ` Ingo Molnar
2007-01-10 10:46               ` Rusty Russell
     [not found]                 ` <1168425985.19646.205.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-01-10 11:00                   ` sean-cz32UWRuVxBIf6P1QZMOBw

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=45A4C345.5050404@qumranet.com \
    --to=avi-atkuwr5tajbwk0htik3j/w@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=mingo-X9Un+BFzKDI@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox