All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rafal Wojtczuk <rafal@invisiblethingslab.com>
To: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
	Keir Fraser <keir.fraser@eu.citrix.com>
Subject: Re: Re: Improving domU restore time
Date: Wed, 2 Jun 2010 18:24:13 +0200	[thread overview]
Message-ID: <20100602162413.GA7173@emperor2.itldev.org> (raw)
In-Reply-To: <4C053C99.6010906@goop.org>

On Tue, Jun 01, 2010 at 10:00:09AM -0700, Jeremy Fitzhardinge wrote:
> On 05/31/2010 02:42 AM, Rafal Wojtczuk wrote:
> > Hello,
> >   
> >> I would be grateful for the comments on possible methods to improve domain
> >> restore performance. Focusing on the PV case, if it matters.
> >>     
> > Continuing the topic; thank you to everyone that responded so far.
> >
> > Focusing on xen-3.4.3 case for now, dom0/domU still 2.6.32.x pvops x86_64. 
> > Let me just reiterate that for our purposes, the domain save time (and 
> > possible related post-processing) is not critical, it 
> > is only the restore time that matters. I did some experiments; they involve:
> > 1) before saving a domain, have domU allocate all free memory in an userland
> > process, then fill it with some MAGIC_PATTERN. Save domU, then process the
> > savefile, removing all pfns (and their page content) that refer to a page 
> > containing MAGIC_PATTERN.
> > This reduces the savefile size.
> Why not just balloon the domain down?
I thought it (well, rather the matching balloon up after restore) would cost 
quite some CPU time; it used to AFAIR. But nowadays it looks sensible, in 90ms
range. Yes, that is much cleaner, thank you for the hint.
 
> > should be no disk reads at all). Is the single threaded nature of xenstored 
> > the possible cause for the delays ?
> Have you tried oxenstored?  It works well for me, and seems to be a lot
> faster.
Do you mean 
http://xenbits.xensource.com/ext/xen-ocaml-tools.hg
?
After some tweaks to Makefiles (-fPIC is required on x86_64 for libs sources) 
it compiles, but then it bails during startup with 
fatal error: exception Failure("ioctl bind_interdomain failed")
This happens under xen-3.4.3; does it require 4.0.0 ?

> >> I would expect IOCTL_PRIVCMD_MMAPBATCH to be the most significant part of
> >> that loop.
> > Let's imagine there is a hypercall do_direct_memcpy_from_dom0_to_mfn(int
> > mfn_count, mfn* mfn_array, char * pages_content).
> The main cost of pagetable manipulations is the tlb flush; if you can
> batch all your setups together to amortize the cost of the tlb flush, it
> should be pretty quick.  But if batching is not being used properly,
> then it could get very expensive.  My own observation of "strace xl
> restore" is that it seems to do a *lot* of ioctls on privcmd, but I
> haven't looked more closely to see what those calls are, and whether
> they're being done in an optimal way.
Well, it looks like xc_restore should _usually_ call 
xc_map_foreign_batch once per pages batch (once per 1024 read pages), which
looks sensible. xc_add_mmu_update also tries to batch requests. There are 
432 occurences of ioctl syscall in the xc_restore strace output; I am not 
sure if it is damagingly numerous. 

Regards,
Rafal Wojtczuk
Principal Researcher
Invisible Things Lab, Qubes-os project

  reply	other threads:[~2010-06-02 16:24 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-25 10:35 Improving domU restore time Rafal Wojtczuk
2010-05-25 10:58 ` Joanna Rutkowska
2010-05-25 11:50 ` Keir Fraser
2010-05-25 12:50   ` Rafal Wojtczuk
2010-05-25 12:59     ` Keir Fraser
2010-05-25 13:33       ` scrubbing free'd pages James Harper
2010-05-25 13:39         ` Keir Fraser
2010-05-25 13:48           ` Paul Durrant
2010-05-25 14:12       ` scrubbing pages on vm pause Joanna Rutkowska
2010-05-25 14:13         ` Keir Fraser
2010-05-25 14:19           ` Joanna Rutkowska
2010-05-25 14:19             ` Keir Fraser
2010-05-25 14:24               ` Joanna Rutkowska
2010-05-25 13:02     ` Improving domU restore time Keir Fraser
2010-05-31  9:42   ` Rafal Wojtczuk
2010-06-01 17:00     ` Jeremy Fitzhardinge
2010-06-02 16:24       ` Rafal Wojtczuk [this message]
2010-06-02 16:33         ` Jeremy Fitzhardinge

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=20100602162413.GA7173@emperor2.itldev.org \
    --to=rafal@invisiblethingslab.com \
    --cc=jeremy@goop.org \
    --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.