From: Paolo Bonzini <pbonzini@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: "Juan Quintela" <quintela@redhat.com>,
patches@linaro.org, "Dawid Ciężarkiewicz" <dawidc@b-labs.com>,
"Amit Mahajan" <amit.mahajan@b-labs.com>,
qemu-devel@nongnu.org, "Bahadir Balban" <bbalban@b-labs.com>
Subject: [Qemu-devel] Re: [PATCH v2 1/2] hw/arm_sysctl.c: Add the Versatile Express system registers
Date: Sat, 05 Mar 2011 18:04:56 +0100 [thread overview]
Message-ID: <4D726D38.8030902@redhat.com> (raw)
In-Reply-To: <AANLkTikLnf3Aj6mP20PM90=tdxFV=T69tB7_fT12dPo6@mail.gmail.com>
On 03/05/2011 05:50 PM, Peter Maydell wrote:
> (1) Is there supposed to be any kind of guard on trying to
> do a vmsave on a system with devices that don't implement
> save/load? IME it just produces a snapshot which doesn't
> work when you reload it...
I think you're right, devices currently have to call
register_device_unmigratable manually. I guess you could add support to
qdev, so that qdev-ified devices could specify a special "forbid
migration" value for the vmsd field.
Alternatively, you could have NULL mean "forbid migration" and a special
value for "do not save anything, it will just work".
> (2) How do you track incompatible changes at the machine
> level? For instance, suppose we accidentally forgot to
> model a NOT gate in an IRQ line, so we add a qemu_irq_invert()
> to the machine init function. None of the devices have
> changed, but you can't load the state of an old version
> of the machine into a new version, because then the
> devices on either end of the inverter would be inconsistent
> about the state of the line. But there's no version number
> for a machine as far as I can see.
You can change the machine model and keep the incompatible machine as a
separate model. A machine can specify compatibility properties that are
meant exactly for this kind of bug-compatible behavior. Reloading the
VM must be done with the correct -M switch for the old model.
Examples of how to do this are in hw/pc_piix.c (which will provide good
ideas for further grepping, too :)).
Paolo
next prev parent reply other threads:[~2011-03-05 17:05 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-04 20:34 [Qemu-devel] [PATCH v2 0/2] ARM: Add Versatile Express board model Peter Maydell
2011-03-04 20:34 ` [Qemu-devel] [PATCH v2 1/2] hw/arm_sysctl.c: Add the Versatile Express system registers Peter Maydell
2011-03-05 12:11 ` [Qemu-devel] " Paolo Bonzini
2011-03-05 12:34 ` Peter Maydell
2011-03-05 14:59 ` Paolo Bonzini
2011-03-05 16:50 ` Peter Maydell
2011-03-05 17:04 ` Paolo Bonzini [this message]
2011-03-07 11:45 ` Peter Maydell
2011-03-07 12:09 ` Jan Kiszka
2011-03-22 19:05 ` Peter Maydell
2011-03-22 19:53 ` Juan Quintela
2011-03-22 20:32 ` Peter Maydell
2011-03-23 8:54 ` Paolo Bonzini
2011-03-23 9:44 ` Juan Quintela
2011-03-04 20:34 ` [Qemu-devel] [PATCH v2 2/2] hw/vexpress.c: Add model of ARM Versatile Express board 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=4D726D38.8030902@redhat.com \
--to=pbonzini@redhat.com \
--cc=amit.mahajan@b-labs.com \
--cc=bbalban@b-labs.com \
--cc=dawidc@b-labs.com \
--cc=patches@linaro.org \
--cc=peter.maydell@linaro.org \
--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.