From: Anthony Liguori <anthony@codemonkey.ws>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RFC PATCH 1/4] add support for machine models to specify their migration format
Date: Fri, 29 Jul 2011 08:08:55 -0500 [thread overview]
Message-ID: <4E32B0E7.3060204@codemonkey.ws> (raw)
In-Reply-To: <1309448777-1447-2-git-send-email-pbonzini@redhat.com>
On 06/30/2011 10:46 AM, Paolo Bonzini wrote:
> We need to provide a new migration format, and not break migration
> in old machine models. So add a migration_format field to QEMUMachine.
>
> Signed-off-by: Paolo Bonzini<pbonzini@redhat.com>
> ---
> cpu-common.h | 3 ---
> hw/boards.h | 1 +
> qemu-common.h | 3 +++
> savevm.c | 7 +++++--
> 4 files changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/cpu-common.h b/cpu-common.h
> index b027e43..8c06dbb 100644
> --- a/cpu-common.h
> +++ b/cpu-common.h
> @@ -26,9 +26,6 @@ enum device_endian {
> DEVICE_LITTLE_ENDIAN,
> };
>
> -/* address in the RAM (different from a physical address) */
> -typedef unsigned long ram_addr_t;
> -
> /* memory API */
>
> typedef void CPUWriteMemoryFunc(void *opaque, target_phys_addr_t addr, uint32_t value);
> diff --git a/hw/boards.h b/hw/boards.h
> index 716fd7b..560dbaf 100644
> --- a/hw/boards.h
> +++ b/hw/boards.h
> @@ -19,6 +19,7 @@ typedef struct QEMUMachine {
> QEMUMachineInitFunc *init;
> int use_scsi;
> int max_cpus;
> + unsigned migration_format;
> unsigned int no_serial:1,
> no_parallel:1,
> use_virtcon:1,
> diff --git a/qemu-common.h b/qemu-common.h
> index 109498d..550fe2c 100644
> --- a/qemu-common.h
> +++ b/qemu-common.h
> @@ -119,6 +119,9 @@ static inline char *realpath(const char *path, char *resolved_path)
> #define PRIo64 "I64o"
> #endif
>
> +/* address in the RAM (different from a physical address) */
> +typedef unsigned long ram_addr_t;
> +
> /* FIXME: Remove NEED_CPU_H. */
> #ifndef NEED_CPU_H
>
> diff --git a/savevm.c b/savevm.c
> index 8139bc7..74e6e99 100644
> --- a/savevm.c
> +++ b/savevm.c
> @@ -72,6 +72,7 @@
> #include "qemu-common.h"
> #include "hw/hw.h"
> #include "hw/qdev.h"
> +#include "hw/boards.h"
> #include "net.h"
> #include "monitor.h"
> #include "sysemu.h"
> @@ -1474,7 +1475,7 @@ int qemu_savevm_state_begin(Monitor *mon, QEMUFile *f, int blk_enable,
> }
>
> qemu_put_be32(f, QEMU_VM_FILE_MAGIC);
> - qemu_put_be32(f, QEMU_VM_FILE_VERSION);
> + qemu_put_be32(f, current_machine->migration_format ?: QEMU_VM_FILE_VERSION);
Please avoid this gcc extension as it's relatively obscure. But in
addition, why would use you 0 as the new format instead of
QEMU_VM_FILE_VERSION + 1?
Regards,
Anthony Liguori
> QTAILQ_FOREACH(se,&savevm_handlers, entry) {
> int len;
> @@ -1747,8 +1748,10 @@ int qemu_loadvm_state(QEMUFile *f)
> fprintf(stderr, "SaveVM v2 format is obsolete and don't work anymore\n");
> return -ENOTSUP;
> }
> - if (v != QEMU_VM_FILE_VERSION)
> + if (v != (current_machine->migration_format ?: QEMU_VM_FILE_VERSION)) {
> + fprintf(stderr, "Mismatching SaveVM format v%d\n", v);
> return -ENOTSUP;
> + }
>
> while ((section_type = qemu_get_byte(f)) != QEMU_VM_EOF) {
> uint32_t instance_id, version_id, section_id;
next prev parent reply other threads:[~2011-07-29 13:09 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-30 15:46 [Qemu-devel] [RFC PATCH 0/4] Fix subsection ambiguity in the migration format Paolo Bonzini
2011-06-30 15:46 ` [Qemu-devel] [RFC PATCH 1/4] add support for machine models to specify their " Paolo Bonzini
2011-06-30 18:11 ` Michael S. Tsirkin
2011-07-01 6:10 ` Paolo Bonzini
2011-07-29 13:08 ` Anthony Liguori [this message]
2011-07-29 14:35 ` Paolo Bonzini
2011-06-30 15:46 ` [Qemu-devel] [RFC PATCH 2/4] add pc-0.14 machine Paolo Bonzini
2011-08-05 19:26 ` Bruce Rogers
2011-08-05 19:41 ` Anthony Liguori
2011-06-30 15:46 ` [Qemu-devel] [RFC PATCH 3/4] savevm: define new unambiguous migration format Paolo Bonzini
2011-07-29 13:12 ` Anthony Liguori
2011-07-29 14:35 ` Paolo Bonzini
2011-06-30 15:46 ` [Qemu-devel] [RFC PATCH 4/4] Partially revert "savevm: fix corruption in vmstate_subsection_load()." Paolo Bonzini
2011-07-25 21:10 ` [Qemu-devel] [RFC PATCH 0/4] Fix subsection ambiguity in the migration format Paolo Bonzini
2011-07-25 23:23 ` Anthony Liguori
2011-07-26 9:42 ` Daniel P. Berrange
2011-07-26 9:48 ` Stefan Hajnoczi
2011-07-26 12:51 ` Stefan Hajnoczi
2011-07-26 13:00 ` Anthony Liguori
2011-07-26 12:07 ` Juan Quintela
2011-07-26 12:37 ` Anthony Liguori
2011-07-26 20:13 ` Juan Quintela
2011-07-26 21:46 ` Anthony Liguori
2011-07-26 22:22 ` Peter Maydell
2011-07-26 23:08 ` Anthony Liguori
2011-07-29 14:03 ` Kevin Wolf
2011-07-29 14:28 ` Anthony Liguori
2011-07-29 15:18 ` Kevin Wolf
2011-07-29 22:28 ` Anthony Liguori
2011-07-31 10:48 ` Dor Laor
2011-07-31 11:37 ` Peter Maydell
2011-07-31 11:45 ` Dor Laor
2011-07-31 18:46 ` Christoph Hellwig
2011-07-31 20:43 ` Dor Laor
2011-07-31 20:55 ` Anthony Liguori
2011-07-31 23:10 ` Christoph Hellwig
2011-08-01 0:15 ` Anthony Liguori
2011-08-01 7:54 ` Christoph Hellwig
2011-08-01 13:53 ` Anthony Liguori
2011-08-04 14:59 ` Luiz Capitulino
2011-07-31 20:43 ` Anthony Liguori
2011-07-31 20:57 ` Dor Laor
2011-07-31 21:03 ` Anthony Liguori
2011-07-31 21:25 ` Dor Laor
2011-07-31 21:49 ` Anthony Liguori
2011-07-29 13:14 ` Anthony Liguori
2011-07-29 14:49 ` Paolo Bonzini
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=4E32B0E7.3060204@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/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.