On Sun, Dec 20, 2009 at 09:11:18AM -0600, Anthony Liguori wrote:
> Gleb Natapov wrote:
> >On Sun, Dec 20, 2009 at 08:58:40AM -0600, Anthony Liguori wrote:
> >>No.  You have to physically shut down and start up again.  That's
> >>the right semantics IMHO.
> >>
> >Reset is equivalent (or should be) to shut down and start up again.
> 
> Not at all.  Reset can happen in a lot of different ways, some that
We support only one way of reset: hard reset. It equivalent to full
HW power cycling. ACPI spec define ACPI reset as equivalent to HW power
cycling too BTW (see 4.7.3.6).

> there is really no way to detect (jumping right to BIOS vector).
This is not reset at all from qemu POV. No need to reload ROMS.
 
> From a hardware perspective, powering down a CPU and powering it on
> again behaves very differently than reset (consider the VT
> enablement MSRs).
May be you are confusing cpu reset by INIT with CPU reset by power
cycling. system_reset (or triple fault or kbd reset or ACPI reset)
does the later.

> 
> >>>Second what if ROM size have changed (on destination it is
> >>>smaller)?
> >>Then we're in trouble :-)
> >Yeah, we are. May be relaying on file size is not good enough heuristic
> >to determine ROM BAR size.
> 
> Practically speaking, I don't think it's a huge problem to be
> honest.  It's a very unlikely scenario.  We could make the rom size
> a qdev property which would allow a user to explicitly deal with
> this case.
Agree that it is unlikely, but I don't want to be the one debugging it.

> 
> >>But the fw_cfg rom loading doesn't seem handle migration :-/
> >>
> >Looks like it. We should send them over during migration too.
> 
> We should just qemu_ram_alloc() that memory regardless of whether we
> every map it into the guest.  Since roms can be large, we want to
> send their contents over during the live part of migration.  If we
> use qemu_ram_alloc(), we get that for free.
> 
This will work only if we assume that rom file size doesn't shrink, 

--
                        Gleb.


Reply via email to