[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen
From: |
Stefano Stabellini |
Subject: |
Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen |
Date: |
Mon, 23 Jan 2012 16:16:06 +0000 |
User-agent: |
Alpine 2.00 (DEB 1167 2008-08-23) |
On Mon, 23 Jan 2012, Jan Kiszka wrote:
> On 2012-01-23 15:46, Stefano Stabellini wrote:
> > On Mon, 23 Jan 2012, Jan Kiszka wrote:
> >> On 2012-01-23 12:59, Stefano Stabellini wrote:
> >>> On Mon, 23 Jan 2012, Jan Kiszka wrote:
> >>>>>> Or what is the ordering
> >>>>>> of init, RAM restore, and initial device reset now?
> >>>>>
> >>>>> RAM restore (done by Xen)
> >>>>>
> >>>>> physmap rebuild (done by xen_hvm_init in qemu)
> >>>>> pc_init()
> >>>>> qemu_system_reset()
> >>>>> load_vmstate()
> >>>>
> >>>> Hmm, are you sure that this is the only case where a device init or
> >>>> reset handler writes to already restored guest memory? Preloading the
> >>>> RAM this way is a non-standard scenario for QEMU, thus conceptually
> >>>> fragile. Does restoring happen before QEMU is even started, or can this
> >>>> point be controlled from QEMU?
> >>>
> >>> Consider that this only happens with non-MMIO device memory, in practice
> >>> only videoram.
> >>> Vmware VGA does not memset the videoram in the reset handler, while QXL
> >>> already has the following:
> >>>
> >>> /* pre loadvm reset must not touch QXLRam. This lives in
> >>> * device memory, is migrated together with RAM and thus
> >>> * already loaded at this point */ if (!loadvm) {
> >>> qxl_reset_state(d); }
> >>
> >> Yes, but QEMU restores the RAM _after_ device reset, not before it.
> >> That's the problem with the Xen way - it is against the current
> >> QEMU standard.
> >
> > QEMU doesn't save/restore the RAM (and the videoram) at all on Xen.
>
> But it does otherwise, and that's the scenario the code you cited was
> written for. It won't work as is under Xen.
Ah, I see your point now.
In that regard, is the comment above even correct?
I am referring to "migrated together with RAM and thus already loaded at
this point"?
> > To reply to your previous question more clearly: at restore time Qemu on
> > Xen would run in a non-standard scenario; the restore of the RAM happens
> > before QEMU is even started.
> >
> > That is unfortunate but it would be very hard to change (I can give you
> > more details if you are interested in the reasons why it would be so
> > difficult).
>
> If you can't change this, you need to properly introduce this new
> scenario - pre-initialized RAM - to the QEMU device model. Or you will
> see breakage outside cirrus sooner or later as well. So it might be good
> to explain the reason why it can't be changed under Xen when motivating
> this concept extension to QEMU.
OK.
Are you thinking about introducing this concept as a new runstate?
This special runstate could be set at restore time only on Xen.
BTW the main reasons for having Xen saving the RAM are:
- the need to support PV guests, that often run without Qemu;
- the current save format, that is built around the fact that Xen saves the
memory;
- the fact that Qemu might be running in a very limited stub-domain.
- [Qemu-devel] [PATCH v4 5/6] xen: record physmap changes to xenstore, (continued)
- [Qemu-devel] [PATCH v4 5/6] xen: record physmap changes to xenstore, Stefano Stabellini, 2012/01/20
- [Qemu-devel] [PATCH v4 6/6] xen: change memory access behavior during migration., Stefano Stabellini, 2012/01/20
- [Qemu-devel] [PATCH v4 4/6] cirrus_vga: do not reset videoram on resume, Stefano Stabellini, 2012/01/20
- Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen, Jan Kiszka, 2012/01/20
- Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen, Stefano Stabellini, 2012/01/23
- Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen, Jan Kiszka, 2012/01/23
- Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen, Stefano Stabellini, 2012/01/23
- Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen, Jan Kiszka, 2012/01/23
- Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen, Stefano Stabellini, 2012/01/23
- Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen, Jan Kiszka, 2012/01/23
- Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen,
Stefano Stabellini <=
- Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen, Anthony Liguori, 2012/01/23
- Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen, Jan Kiszka, 2012/01/23
- Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen, Anthony Liguori, 2012/01/23
- Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen, Jan Kiszka, 2012/01/23
- Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen, Anthony Liguori, 2012/01/23
- Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen, Gerd Hoffmann, 2012/01/24
- Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen, Avi Kivity, 2012/01/24
- Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen, Stefano Stabellini, 2012/01/24
- Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen, Avi Kivity, 2012/01/24
- Re: [Qemu-devel] [PATCH v4 0/6] save/restore on Xen, Anthony Liguori, 2012/01/24