From: Anthony Liguori <anthony@codemonkey.ws>
To: Avi Kivity <avi@redhat.com>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
"Benoît Canet" <benoit.canet@gmail.com>,
qemu-devel@nongnu.org, quintela@redhat.com
Subject: Re: [Qemu-devel] [PATCH 4/5] integratorcp: convert integratorcm to VMState
Date: Tue, 08 Nov 2011 07:50:54 -0600 [thread overview]
Message-ID: <4EB933BE.7080503@codemonkey.ws> (raw)
In-Reply-To: <4EB922DD.6040309@redhat.com>
On 11/08/2011 06:38 AM, Avi Kivity wrote:
> On 11/08/2011 02:30 PM, Peter Maydell wrote:
>> On 8 November 2011 12:21, Avi Kivity<avi@redhat.com> wrote:
>>> On 11/08/2011 02:15 PM, Peter Maydell wrote:
>>>> This needs to be in the MemoryRegion core implementation, please.
>>>
>>> Right; see the memory/mutators branch. I plan to push this as soon as
>>> everything is converted.
>>
>> OK, then this save/restore patch should wait until that has landed.
>
> Please don't add interdependencies, especially as I can't promise a firm
> date as to when everything is converted (however I'll take this
> opportunity to remind you that patches, especially for omap, are more
> welcome than I can possibly articulate).
>
>>>> Ideally memory.c should just ensure that the memory hierarchy
>>>> is saved and restored without devices having to do anything.
>>>
>>> That's a bit far-fetched - I don't want the memory core involved in
>>> save/restore. But if/when we integrate the memory core into QOM, then
>>> yes, that layer can take care of it. If we have an observable attribute
>>> (that fires off a callback when changed), we can link memory API
>>> properties into that attribute.
>>
>> The memory hierarchy is a visible part of the state which can
>> change as the guest does things -- it has to get saved and
>> restored somehow. I think it would be better done in the core
>> where it will always be done right, rather than relying on
>> each device to handle it correctly (especially since it's not
>> always obvious if it's been missed out from the device.)
>
> We agree, the only difference is in what "core" refers to. I don't want
> memory.c do become intermingled with everything else. It should be in a
> separate layer. Devices would then talk to this layer, and not to the
> gluing by themselves as they have to now.
>
> Or maybe memory.c will be layered on top of QOM, and then it can take
> care of everything. I really don't know QOM well enough to say.
> Copying Anthony for more insight.
QOM fixes all problems, but I don't think this has anything to do with QOM :-)
We fundamentally should do save/restore using a rigorous, automatically
generated mechanism where every field is save/restored[1]. That means we should
have a VMSTATE_MEMORY_REGION().
VMSTATE_MEMORY_REGION should save off the state of the memory region, and
restore it appropriately. VMSTATE_MEMORY_REGION's implementation does not need
to live in memory.c. It can certainly live in savevm.c or somewhere else more
appropriate.
Where the device is mapped within the address space is no longer a property of
the device, so restoring the mapping really should happen at whatever owns the
address space (in this case sysbus).
In this case, integratorcp is the one mapping things into its own address space
so flash_mapped ought to be saved by integratorcp.
[1] Deciding that a field doesn't need to be saved should be an exception.
Regards,
Anthony Liguori
>
next prev parent reply other threads:[~2011-11-08 13:51 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-25 11:09 [Qemu-devel] [PATCH 0/5] arm: VMState conversion Benoît Canet
2011-10-25 11:09 ` [Qemu-devel] [PATCH 1/5] pl181: add vmstate Benoît Canet
2011-10-25 11:09 ` [Qemu-devel] [PATCH 2/5] bitbang_i2c: convert to VMState Benoît Canet
2011-10-25 11:09 ` [Qemu-devel] [PATCH 3/5] realview: convert realview i2c " Benoît Canet
2011-10-25 11:09 ` [Qemu-devel] [PATCH 4/5] integratorcp: convert integratorcm " Benoît Canet
2011-10-26 17:24 ` Peter Maydell
2011-11-08 2:07 ` Peter Maydell
2011-11-08 6:33 ` Avi Kivity
2011-11-08 10:08 ` Benoît Canet
2011-11-08 12:16 ` Peter Maydell
2011-11-08 12:15 ` Peter Maydell
2011-11-08 12:21 ` Avi Kivity
2011-11-08 12:30 ` Peter Maydell
2011-11-08 12:38 ` Avi Kivity
2011-11-08 12:47 ` Peter Maydell
2011-11-08 13:50 ` Anthony Liguori [this message]
2011-11-08 14:38 ` Avi Kivity
2011-11-08 15:04 ` Anthony Liguori
2011-11-08 15:15 ` Avi Kivity
2011-11-08 15:32 ` Anthony Liguori
2011-11-08 17:19 ` Avi Kivity
2011-11-09 14:40 ` Anthony Liguori
2011-11-09 15:05 ` Avi Kivity
2011-11-09 15:20 ` Peter Maydell
2011-11-09 15:21 ` Avi Kivity
2011-11-09 15:49 ` Anthony Liguori
2011-11-09 15:56 ` Avi Kivity
2011-11-09 16:07 ` Peter Maydell
2011-11-09 17:43 ` Anthony Liguori
2011-11-09 18:09 ` Avi Kivity
2011-10-25 11:09 ` [Qemu-devel] [PATCH 5/5] integratorcp: convert icp_pic " Benoît Canet
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=4EB933BE.7080503@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=avi@redhat.com \
--cc=benoit.canet@gmail.com \
--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 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).