virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] KVM paravirt_ops backend (v3)
@ 2007-06-21  3:04 Anthony Liguori
       [not found] ` <4679EAAF.2060103-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
  0 siblings, 1 reply; 18+ messages in thread
From: Anthony Liguori @ 2007-06-21  3:04 UTC (permalink / raw)
  To: kvm-devel; +Cc: virtualization

Hi,

This is an update to the paravirt_ops KVM backend series.  I've made a 
number of changes and attempted to incorporate all the feedback from the 
last review.  Some highlights:

1) Clean up the paravirt time source patch to use a more Xen-like model
2) Change the hypercall queueing to pass a PA on the flush hypercall
3) Add MMU support for release_{pt,pd} and TLB flush
4) Use KVM specific errno values
5) Switch from per_cpu to more appropriate functions

As for performance, I've got a few interesting results.  kbuild with a 
guest using 2G of memory goes from 19 minutes to 12 minutes with the 
full series applied.  Using 512mb, the build time goes from 10.75 
minutes to 9 minutes.  For 512mb, native is around 7 minutes so that's 
pretty close to what Avi had seen.  The more dramatic improvement with 
large memory guests is probably because of the increased shadow page 
table activity due to high mem.

virtbench shows major improvements but I'm not 100% confident yet in the 
results as they are not very stable.  I don't yet have a benchmark that 
shows the benefit of the CR caching so if I don't find one, I'll drop 
that from the queue.

As usual, the latest bits are available at 
http://hg.codemonkey.ws/kvm-paravirt

Regards,

Anthony Liguori

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

^ permalink raw reply	[flat|nested] 18+ messages in thread
* [PATCH 0/5] KVM paravirt_ops implementation
@ 2007-06-18  2:56 Anthony Liguori
       [not found] ` <4675F462.1010708-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
  0 siblings, 1 reply; 18+ messages in thread
From: Anthony Liguori @ 2007-06-18  2:56 UTC (permalink / raw)
  To: kvm-devel, virtualization, Avi Kivity, Rusty Russell, Ingo Molnar

Hi,

This patch series is an update of my previous paravirt_ops patches.  
They are loosely based on Ingo's original paravirt_ops implementation 
for KVM.  Some of the changes since the last series include:

1) Switch to using CPUID 0x40000000 instead of using MSR writes to 
discover shared memory area
2) Attempt to deal with SMP guests
3) Support for generic CR read caching
4) Support for batching of MMU operations

Some known issues:

1) Not really sure what is needed for CONFIG_PREEMPT support.  I'm not 
sure which paravirt_ops calls are actually re-entrant.
2) The paravirt_ops implementation is registered with core_initcall().  
However, the paravirt_ops banner is also printed with core_initcall() so 
that fact that this works now is just the luck of build order.  Need a 
better way to initialize the KVM paravirt_ops backend.
3) These patches probably break guest save/restore.  Need a generic way 
to get additional save/restore callbacks in the kernel (perhaps the 
in-kernel APIC series addresses this already?).

The latest versions of these patches are available at:

http://hg.codemonkey.ws/kvm-paravirt

Regards,

Anthony Liguori

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

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2007-06-26 11:57 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-21  3:04 [PATCH 0/5] KVM paravirt_ops backend (v3) Anthony Liguori
     [not found] ` <4679EAAF.2060103-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-21  3:05   ` [PATCH 1/5] KVM paravirt_ops core infrastructure Anthony Liguori
2007-06-21  3:06   ` [PATCH 2/5] KVM: paravirt time source Anthony Liguori
2007-06-21  3:07   ` [PATCH 3/5] KVM: Implement CR read caching for KVM paravirt_ops Anthony Liguori
2007-06-21  3:08   ` [PATCH 4/5] KVM: Add paravirt MMU write support Anthony Liguori
2007-06-21  3:09   ` [PATCH 5/5] KVM: Add hypercall queue for paravirt_ops implementation Anthony Liguori
2007-06-21  3:16   ` [PATCH 0/5] KVM paravirt_ops backend (v3) Anthony Liguori
2007-06-21  9:18   ` Avi Kivity
     [not found]     ` <467A4280.9060503-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-06-21 13:19       ` Anthony Liguori
2007-06-21  9:26   ` Li, Xin B
  -- strict thread matches above, loose matches on Subject: below --
2007-06-18  2:56 [PATCH 0/5] KVM paravirt_ops implementation Anthony Liguori
     [not found] ` <4675F462.1010708-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18  2:58   ` [PATCH 1/5] KVM paravirt_ops core infrastructure Anthony Liguori
     [not found]     ` <4675F4C3.6050700-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18  8:03       ` Avi Kivity
     [not found]         ` <46763C6B.9050004-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-06-18 12:25           ` Anthony Liguori
     [not found]             ` <467679C5.6030201-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-06-18 12:28               ` Avi Kivity
2007-06-26  8:04       ` Dor Laor
     [not found]         ` <64F9B87B6B770947A9F8391472E032160C73025E-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-06-26  8:45           ` Jun Koi
     [not found]             ` <fdaac4d50706260145x1ebceadt432edd5b6a6ac1f2-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-06-26 11:57               ` Anthony Liguori
2007-06-26 11:56           ` Anthony Liguori

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).