qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Anthony Liguori <aliguori@us.ibm.com>,
	lersek@redhat.com, qemu-devel@nongnu.org, kraxel@redhat.com
Subject: Re: [Qemu-devel] [PATCH v4 2/2] loader: store FW CFG ROM files in RAM
Date: Mon, 19 Aug 2013 20:40:10 +0300	[thread overview]
Message-ID: <20130819174010.GA7737@redhat.com> (raw)
In-Reply-To: <521255AC.2080404@redhat.com>

On Mon, Aug 19, 2013 at 07:28:12PM +0200, Paolo Bonzini wrote:
> Il 19/08/2013 16:26, Michael S. Tsirkin ha scritto:
> > ROM files that are put in FW CFG are copied to guest ram, by BIOS, but
> > they are not backed by RAM so they don't get migrated.
> > 
> > Each time we change two bytes in such a ROM this breaks cross-version
> > migration: since we can migrate after BIOS has read the first byte but
> > before it has read the second one, getting an inconsistent state.
> > 
> > Future-proof this by creating, for each such ROM,
> > an MR serving as the backing store.
> > This MR is never mapped into guest memory, but it's registered
> > as RAM so it's migrated with the guest.
> > 
> > Naturally, this only helps for -M 1.7 and up, older machine types
> > will still have the cross-version migration bug.
> > Luckily the race window for the problem to trigger is very small,
> > which is also likely why we didn't notice the cross-version
> > migration bug in testing yet.
> > 
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> 
> This doesn't really help much unless we support migration of
> different-sized RAM regions, does it?

It does because RAM blocks are multiples of target pages, so the size
won't change all that much. This is more or less similar to what happens
e.g. with BIOS (aligned to power of two).
It worked for BIOS for a while.


> In particular, what happens if
> the region is smaller on the destination?  Do we get garbage written out
> of a malloc-ed region's bounds?

No, migration fails if block size does not match.

> The patches look good, but I'm not sure they are an improvement yet.
> 
> Paolo

Well they protect us against minor changes which are
IMO more likely than major changes.

We can add code to allow ram block size changes on top.
I'm not sure it's a requirement right now.

-- 
MST

  reply	other threads:[~2013-08-19 17:38 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-19 14:26 [Qemu-devel] [PATCH v4 0/2] future proof rom loading for cross versiom migration Michael S. Tsirkin
2013-08-19 14:26 ` [Qemu-devel] [PATCH v4 1/2] arch_init: align MR size to target page size Michael S. Tsirkin
2013-08-19 17:37   ` Laszlo Ersek
2013-08-19 17:45     ` Peter Maydell
2013-08-19 17:51       ` Michael S. Tsirkin
2013-08-19 17:48     ` Michael S. Tsirkin
2013-08-19 18:04       ` Laszlo Ersek
2013-08-19 14:26 ` [Qemu-devel] [PATCH v4 2/2] loader: store FW CFG ROM files in RAM Michael S. Tsirkin
2013-08-19 17:28   ` Paolo Bonzini
2013-08-19 17:40     ` Michael S. Tsirkin [this message]
2013-08-19 17:50       ` Paolo Bonzini
2013-08-19 18:05   ` Laszlo Ersek
2013-08-19 16:35 ` [Qemu-devel] [PATCH v4 0/2] future proof rom loading for cross versiom migration 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=20130819174010.GA7737@redhat.com \
    --to=mst@redhat.com \
    --cc=aliguori@us.ibm.com \
    --cc=kraxel@redhat.com \
    --cc=lersek@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --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 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).