qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert (git)" <dgilbert@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com, yanghy@cn.fujitsu.com,
	zhang.zhanghailiang@huawei.com
Subject: [Qemu-devel] [RFC/COLO:  0/3] Hybrid mode and parameterisation
Date: Tue,  4 Aug 2015 20:26:24 +0100	[thread overview]
Message-ID: <1438716387-16687-1-git-send-email-dgilbert@redhat.com> (raw)

From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>

Hi,
  This is an experimental adition to COLO, based off the colo-v1.5-developing
branch.  It's not ready for inclusion.

The first patch, adds a 'hybrid mode' where the SVM is sent checkpoints
from the primary but does not run, and is thus much similar to a normal
checkpoint setup.   This mode is entered dynamically based on the
checkpoint lengths; if the average checkpoint length drops below
the 'colo_passive_limit' it flips into this mode running
checkpoints each of 'colo_passive_time' ms in length.  After
'colo_passive_count' checkpoints, it runs 5 COLO cycles again
and then decides what to do based on the same limit as before,
thus giving it a chance to return to COLO mode.

A simple demo of this is to:
  a) ssh into the guest
  b) Open a top on the SVM host
  c) start a heavy CPU load in the guest (e.g. md5sum /dev/zero &)
     You see the QEMU at 100% in the host top
  d) now run 'top' in the guest
     this causes checkpoint miscomparisons every time top redisplays.
  e) change the top redisplay time to something short, e.g. type
     d0.2  and hit return
  f) After a few seconds it flips into passive mode and you see
     the CPU load on the SVM drop.

(Watching the added trace-events also shows this happening).

The other patches make all the COLO parameters changeable via
migrate_set_parameter (I wasn't sure what to call the time
after the miscompare - I called it 'relax time')

(This work has been partially funded by the EU Orbit project:
  see http://www.orbitproject.eu/about/ )

Dave


Dr. David Alan Gilbert (3):
  COLO: Hybrid mode
  Parameterise min/max/relax time
  COLO: Parameterise background RAM transfer limit

 hmp-commands.hx        |  15 -----
 hmp.c                  |  65 +++++++++++++++++--
 hmp.h                  |   1 -
 migration/colo.c       | 170 ++++++++++++++++++++++++++++++++++++-------------
 migration/migration.c  | 139 +++++++++++++++++++++++++++++++++++++++-
 qapi-schema.json       |  56 +++++++++++-----
 qmp-commands.hx        |  31 +++------
 stubs/migration-colo.c |   4 --
 trace-events           |   8 +++
 9 files changed, 378 insertions(+), 111 deletions(-)

-- 
2.4.3

             reply	other threads:[~2015-08-04 19:26 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-04 19:26 Dr. David Alan Gilbert (git) [this message]
2015-08-04 19:26 ` [Qemu-devel] [RFC/COLO: 1/3] COLO: Hybrid mode Dr. David Alan Gilbert (git)
2015-08-05  3:23   ` zhanghailiang
2015-08-24 17:54     ` Dr. David Alan Gilbert
2015-08-04 19:26 ` [Qemu-devel] [RFC/COLO: 2/3] Parameterise min/max/relax time Dr. David Alan Gilbert (git)
2015-08-04 19:26 ` [Qemu-devel] [RFC/COLO: 3/3] COLO: Parameterise background RAM transfer limit Dr. David Alan Gilbert (git)

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=1438716387-16687-1-git-send-email-dgilbert@redhat.com \
    --to=dgilbert@redhat.com \
    --cc=arei.gonglei@huawei.com \
    --cc=qemu-devel@nongnu.org \
    --cc=yanghy@cn.fujitsu.com \
    --cc=zhang.zhanghailiang@huawei.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 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).