All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
Cc: Jan Kiszka <jan.kiszka@siemens.com>,
	qemu-devel@nongnu.org, Juan Quintela <quintela@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 11/11] test-vmstate: add test case to verify we don't change VMState
Date: Tue, 22 Mar 2011 21:31:36 -0500	[thread overview]
Message-ID: <4D895B88.9080904@codemonkey.ws> (raw)
In-Reply-To: <1300839376-22520-12-git-send-email-aliguori@us.ibm.com>

On 03/22/2011 07:16 PM, Anthony Liguori wrote:
> We've had lots of issues surrounding live migration breaking.  This is because
> we haven't had a good way to validate that what we're migrating isn't changing
> underneath of us.
>
> This test works by first converting the in-tree schema to C source as a string.
> This is built into the test case.  The test case will then query QEMU for the
> current schema.
>
> It converts both strings to QObjects via the JSON parser and then does a
> recursive diff.  Unlike a simple diff command, this lets us say exactly what you
> did to break migration.  For instance, you get error messages like:
>
>    You broke migration by changing the type of field 'par' in device 'cpu',
>    version 1 from 'uint32' to 'uint64'.
>
> It only covers devices that support VMState and it currently doesn't look at
> subsections yet.
>
> The in-tree schema needs to be updated whenever migration changes but this ends
> up being a very nice way to ensure that we're reviewing migration protocol
> changes.
>
> The test case is built in the default build, and can be run by `make check'.

This test takes a disturbingly long time to run considering what it's 
doing (~3 seconds).  Turns out, the JSON parser is horribly slow because 
it allocates and frees memory faster than a hummingbird on steroids.

I have a local patch that removes this and afterwards the test runs in 
just 70ms.  I'll send that fix out tomorrow.

Regards,

Anthony Liguori

  reply	other threads:[~2011-03-23  2:31 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-23  0:16 [Qemu-devel] [PATCH 00/11] Add live migration unit tests Anthony Liguori
2011-03-23  0:16 ` [Qemu-devel] [PATCH 01/11] Add hard build dependency on glib Anthony Liguori
2011-03-23  8:13   ` Stefan Hajnoczi
2011-03-23  8:19     ` Roy Tam
2011-03-23  8:41       ` Stefan Hajnoczi
2011-03-23  8:58         ` Roy Tam
2011-03-23  9:19           ` [Qemu-devel] " Paolo Bonzini
2011-03-23  9:22           ` [Qemu-devel] " Stefan Hajnoczi
2011-03-23  0:16 ` [Qemu-devel] [PATCH 02/11] vmstate: register all VMStateDescriptions Anthony Liguori
2011-03-23  9:00   ` Alon Levy
2011-03-23 12:30   ` Peter Maydell
2011-03-23 12:37     ` Anthony Liguori
2011-03-23  0:16 ` [Qemu-devel] [PATCH 03/11] vmstate: for vmstate types that reuse the same field, make sure name is unique Anthony Liguori
2011-03-23  2:29   ` Anthony Liguori
2011-03-23  0:16 ` [Qemu-devel] [PATCH 04/11] sb16: fix migration quirk Anthony Liguori
2011-03-23  9:51   ` [Qemu-devel] " Juan Quintela
2011-03-23 12:16     ` Anthony Liguori
2011-03-23  0:16 ` [Qemu-devel] [PATCH 05/11] vga-isa: fix migration by breaking it Anthony Liguori
2011-03-23  9:54   ` [Qemu-devel] " Juan Quintela
2011-03-23  0:16 ` [Qemu-devel] [PATCH 06/11] fdc: fix migration of non-ISA fdc devices Anthony Liguori
2011-03-23  0:16 ` [Qemu-devel] [PATCH 07/11] eeprom93xx: Use the new hack macro to avoid duplicate field names Anthony Liguori
2011-03-23  9:58   ` [Qemu-devel] " Juan Quintela
2011-03-23 12:34     ` Anthony Liguori
2011-03-23 14:14       ` Juan Quintela
2011-03-23 14:33         ` Anthony Liguori
2011-03-23  0:16 ` [Qemu-devel] [PATCH 08/11] fw_cfg: make sure all VMState fields are unique Anthony Liguori
2011-03-23  0:16 ` [Qemu-devel] [PATCH 09/11] pckbd: make non-ISA pckbd use a unique name Anthony Liguori
2011-03-23  0:16 ` [Qemu-devel] [PATCH 10/11] vl: add a new -vmstate-dump option to write a VMState JSON schema Anthony Liguori
2011-03-23  0:16 ` [Qemu-devel] [PATCH 11/11] test-vmstate: add test case to verify we don't change VMState Anthony Liguori
2011-03-23  2:31   ` Anthony Liguori [this message]
2011-03-23  8:37   ` Stefan Hajnoczi
2011-03-23 10:22   ` Peter Maydell
2011-03-23 12:42     ` Anthony Liguori
2011-03-23 14:17       ` [Qemu-devel] " Juan Quintela
2011-03-23 14:52         ` Anthony Liguori
2011-03-23 15:00           ` Peter Maydell
2011-03-23 15:06             ` Jan Kiszka
2011-03-23 16:27             ` Anthony Liguori
2011-03-23 16:36               ` Jan Kiszka
2011-03-23 18:42                 ` Anthony Liguori
2011-03-23 16:45               ` Peter Maydell
2011-03-23 17:01                 ` Anthony Liguori
2011-03-23 15:26           ` Juan Quintela
2011-03-23 16:14             ` Anthony Liguori
2011-03-23 16:44               ` Juan Quintela
2011-03-23 14:19     ` Juan Quintela
2011-03-23 14:36       ` Peter Maydell
2011-03-23 15:13         ` Juan Quintela
2011-03-23 15:24           ` Peter Maydell

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=4D895B88.9080904@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=jan.kiszka@siemens.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.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.