All of lore.kernel.org
 help / color / mirror / Atom feed
From: Juergen Gross <juergen.gross@ts.fujitsu.com>
To: Gianluca Guida <gianluca.guida@eu.citrix.com>
Cc: Tim Deegan <Tim.Deegan@eu.citrix.com>,
	"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
	Keir Fraser <keir.fraser@eu.citrix.com>
Subject: Re: Poor HVM performance with 8 vcpus
Date: Wed, 14 Oct 2009 12:44:35 +0200	[thread overview]
Message-ID: <4AD5AB93.7050909@ts.fujitsu.com> (raw)
In-Reply-To: <f8877f640910140316s7af2358bt2e34a90cfe3b48fe@mail.gmail.com>

Gianluca Guida wrote:
> Ah, those good old OOS talks. I fear I am going to fail on my attempt
> to be laconic.

:-)

> 
> On Wed, Oct 14, 2009 at 10:35 AM, Keir Fraser <keir.fraser@eu.citrix.com> wrote:
>> On 14/10/2009 09:16, "Juergen Gross" <juergen.gross@ts.fujitsu.com> wrote:
>>
>>> as the performance of BS2000 seems to be hit by OOS optimization, I'm
>>> thinking of making a patch to disable this feature by a domain parameter.
>>>
>>> Is there a way to do this without having to change all places where the
>>> #if statements are placed?
>>> I think there should be some central routines where adding an "if" could
>>> be enough (setting oos_active to 0 seems not to be enough, I fear).
>>>
>>> Do you have any hint?
>> How about disabling it for domains with more than four VCPUs? Have you
>> measured performance with OOS for 1-4 VCPU guests? This is perhaps not
>> something that needs to be baked into guest configs.
> 
> In general, shadow code loses performances as the vcpus increase (>=4)
> because of the single shadow lock (and getting rid of the shadow lock,
> i.e. having per-vcpu shadows wouldn't help, since it would make much
> slower the most common operation, that is removing writable access of
> guest pages).
> But the two algorithms (always in-sync vs. OOS) will show their
> performance penalties in two different areas: in a scenario where
> guests do lot of PTE writes (read Windows in most of its operations)
> the in-sync approach will be more penalizing, because emulation is
> slow and needs the shadow lock, while scenarios were guests tend to
> have many dirty CR3 switches (that is CR3 switches with freshly
> written PTEs, as in the case with Juergen benchmark and the famous
> Windows parallel ddk build) will be penalized more by the OOS
> algorithm.
> 
> Disabling OOS for domains more than 4 vcpus might be a good idea, but
> not necessarily optimal. Furthermore, I always understood that a good
> practice for VM performance is to have many small VMs instead of a VM
> eating all of the host's CPUs, at least when shadow code is on. With
> big VMs, EPT/NPT has always been the best approach, since even with
> lot of TLB misses, the system was definitely lock-free in most of the
> VM's life.
> 
> Creating a per-domain switch should be a good idea, but a more generic
> (and correct) approach would be to have a dynamic policy for OOSing
> pages, in which we would stop putting OOS pages when we realize that
> we are resynch'ing too many pages in CR3 switches. This was taken in
> consideration during the development of the OOS, but it was finally
> discarded because performance were decent and big VMs were not in the
> interest range.
> 
> Yes, definitely away from spartan wit. But I hope this clarifies the issue.

I really does.

I think I'll start with a per-domain switch and leave the generic approach
to the specialists. ;-)

If, however, Keir rejects such a switch, I could try the generic solution,
but I think this solution would need very much work to find the correct
parameters.


Juergen

-- 
Juergen Gross                 Principal Developer Operating Systems
TSP ES&S SWE OS6                       Telephone: +49 (0) 89 636 47950
Fujitsu Technolgy Solutions               e-mail: juergen.gross@ts.fujitsu.com
Otto-Hahn-Ring 6                        Internet: ts.fujitsu.com
D-81739 Muenchen                 Company details: ts.fujitsu.com/imprint.html

  reply	other threads:[~2009-10-14 10:44 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-07  6:55 Poor HVM performance with 8 vcpus Juergen Gross
2009-10-07  7:26 ` Keir Fraser
2009-10-07  7:49   ` Juergen Gross
2009-10-07  7:56 ` Ian Pratt
2009-10-07  8:08   ` James Harper
2009-10-07  8:13     ` Ian Pratt
2009-10-07  8:31       ` Juergen Gross
2009-10-07  8:17     ` Keir Fraser
2009-10-07  9:12     ` Tim Deegan
2009-10-07  9:40       ` Juergen Gross
2009-10-07 10:11         ` George Dunlap
2009-10-07 11:45           ` Juergen Gross
2009-10-07 13:44             ` George Dunlap
     [not found]             ` <de76405a0910070627s7585c587l8753e40d1d2b77b9@mail.gmail.com>
     [not found]               ` <4ACC9C40.3030503@ts.fujitsu.com>
2009-10-07 14:24                 ` George Dunlap
2009-10-08  5:00                   ` Juergen Gross
2009-10-07 10:14         ` Tim Deegan
2009-10-07 12:32           ` Juergen Gross
2009-10-07 16:37 ` Gianluca Guida
2009-10-08  7:10   ` Juergen Gross
2009-10-14  8:16     ` Juergen Gross
2009-10-14  8:35       ` Keir Fraser
2009-10-14  9:11         ` Juergen Gross
2009-10-14 10:16         ` Gianluca Guida
2009-10-14 10:44           ` Juergen Gross [this message]
2009-10-14 10:49             ` Keir Fraser
2009-10-14  8:41       ` Tim Deegan
2009-10-14  9:17         ` Juergen Gross
2009-10-14 11:35       ` Gianluca Guida
2009-10-14 11:43         ` Juergen Gross

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=4AD5AB93.7050909@ts.fujitsu.com \
    --to=juergen.gross@ts.fujitsu.com \
    --cc=Tim.Deegan@eu.citrix.com \
    --cc=gianluca.guida@eu.citrix.com \
    --cc=keir.fraser@eu.citrix.com \
    --cc=xen-devel@lists.xensource.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.