From: Gleb Natapov <gleb@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Kevin O'Connor <kevin@koconnor.net>,
Gerd Hoffmann <kraxel@redhat.com>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Re: [SeaBIOS] [PATCH 0/8] option rom loading overhaul.
Date: Mon, 21 Dec 2009 21:43:59 +0200 [thread overview]
Message-ID: <20091221194359.GF21163@redhat.com> (raw)
In-Reply-To: <4B2FC8C6.2000408@codemonkey.ws>
On Mon, Dec 21, 2009 at 01:13:10PM -0600, Anthony Liguori wrote:
> On 12/21/2009 11:43 AM, Gleb Natapov wrote:
> >Why I will never have reset equivalent to power off + startup? Are you
> >saying we are not capable of implementing spec correctly?
>
> No, I'm saying that if you want reset absolutely equivalent to power
> off + startup, then you need to fork() and re-exec qemu at startup
> since the qemu binary may have changed while the guest was running.
>
> My point behind this is I think that's equivalent to re-reading rom
> contents from disk.
>
You are exaggerating. If user want to update qemu it should exit old
one and re-run new one. Power off + startup, on the other hand, is defied
to be equivalent to ACPI reset by ACPI spec. In other words if devices
state as seen by vmstate after qemu start is different by even one bit
from the state after system_restart this is bug. This is completely
orthogonal to our firmware loading discussion.
> >>>>And more importantly, what is the end-user benefit of doing this?
> >>>>
> >>>Working migration?
> >>How does it fix migration? Migration needs to transfer the current
> >>roms in order to work. A new version of qemu must support
> >>interacting with the old version of the firmware for migration to
> >>work. What happens after reset has nothing to do with migration but
> >>because of the last requirement, the guest will obviously continue
> >>to work after reboot too.
> >I don't agree with your last requirement. Firmware goes hand in hand with
> >HW. Change that is only FW visible should not be backwards compatible.
>
> I think we're papering over this issue. FW interfaces are guest
> visible even though we've been pretending like they aren't.
Not all of it. We can completely change extboot interface, for instance,
and support migration if we will handle things right. We can fix bugs in
tpr patching without losing migration capability.
>
> SeaBIOS does not implement every possible BIOS function. I'm sure
> that it will implement new functions over time. The presence of
> those functions are certainly visible to the guest. Likewise, any
> bug or added feature is visible to a guest.
>
No, not any bug is visible to the guest. Example: kvm currently configures
lvt0 to virtual wire inside qemu/kvm acpi code, but this should be done
by the BIOS on real HW. So suppose we fixed this bug and moved
initialization into the BIOS If we'll try to init new kvm with old BIOS
next OS boot will fail.
> More concretely, we have an internal OS that interacts very closely
> with PXE roms (it makes use of UNDI). It's very aware of the
> difference between etherboot and gPXE and it is also aware of
> different versions of those two.
>
> The arguments for saying FW is not guest visible is that FW
> interfaces are well defined and do not change. The same is true for
> 99% of the hardware we emulate. The reason we have guest visible
> changes is that we're constantly improving and increasing the
> functionality of the hardware. The same is true for FW.
>
We can't do guest visible changes in devices and FW and support
migration from older qemu. I think we agree on this. Non guest visible
changes are allowed for device emulation, you are trying to disallow it for
FW.
> I'm starting to think having an nvram with saved firmware and user
> driven upgrades is the best approach for compatibility by far. I'm
> still concerned though about the relatively complexity of having to
> force users to upgrade their firmware.
>
Please stop thinking so :) Especially about "user driven upgrades".
Why combine disadvantages of vitalization with pain of physical HW
management? Or may be next step will be to require uploading of CPU
microcode to take advantage of KVM/tcg bug fixes?
--
Gleb.
next prev parent reply other threads:[~2009-12-21 19:44 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-18 11:01 [Qemu-devel] [PATCH 0/8] option rom loading overhaul Gerd Hoffmann
2009-12-18 11:01 ` [Qemu-devel] [PATCH 1/8] Support PCI based option rom loading Gerd Hoffmann
2009-12-19 10:57 ` Blue Swirl
2009-12-20 15:34 ` Anthony Liguori
2009-12-20 17:02 ` Blue Swirl
2009-12-20 17:18 ` Alexander Graf
2009-12-20 17:55 ` Anthony Liguori
2009-12-20 18:01 ` Alexander Graf
2009-12-20 18:24 ` Andreas Färber
2009-12-20 18:53 ` Blue Swirl
2009-12-20 21:24 ` Benjamin Herrenschmidt
2009-12-20 21:23 ` Benjamin Herrenschmidt
2009-12-18 11:01 ` [Qemu-devel] [PATCH 2/8] pci romfiles: add property, add default to PCIDeviceInfo Gerd Hoffmann
2010-01-11 21:18 ` [Qemu-devel] [RFC] New naming rules for GPXE romfiles Stefan Weil
2010-01-11 21:34 ` Anthony Liguori
2010-01-12 10:23 ` Kevin Wolf
2009-12-18 11:01 ` [Qemu-devel] [PATCH 3/8] fw_cfg: make calls typesafe Gerd Hoffmann
2009-12-18 11:01 ` [Qemu-devel] [PATCH 4/8] fw_cfg: add API for file transfer Gerd Hoffmann
2009-12-19 12:06 ` Blue Swirl
2009-12-20 8:42 ` [Qemu-devel] Re: [SeaBIOS] " Gleb Natapov
2009-12-18 11:01 ` [Qemu-devel] [PATCH 5/8] roms: use new fw_cfg file xfer support Gerd Hoffmann
2009-12-20 8:45 ` [Qemu-devel] Re: [SeaBIOS] " Gleb Natapov
2009-12-18 11:01 ` [Qemu-devel] [PATCH 6/8] roms: remove option rom packing logic Gerd Hoffmann
2009-12-18 11:01 ` [Qemu-devel] [PATCH 7/8] updated seabios binary for testing convinience Gerd Hoffmann
2009-12-18 11:01 ` [Qemu-devel] [PATCH 8/8] debug: enable bios messages Gerd Hoffmann
2009-12-18 14:35 ` [Qemu-devel] Re: [SeaBIOS] [PATCH 0/8] option rom loading overhaul Anthony Liguori
2009-12-18 16:34 ` Gerd Hoffmann
2009-12-18 16:42 ` Anthony Liguori
2009-12-18 17:03 ` Gerd Hoffmann
2009-12-18 17:12 ` Anthony Liguori
2009-12-19 1:48 ` Kevin O'Connor
2009-12-19 3:07 ` Anthony Liguori
2009-12-18 17:14 ` Anthony Liguori
2009-12-18 18:04 ` Gerd Hoffmann
2009-12-18 19:41 ` Sebastian Herbszt
2009-12-18 19:53 ` Anthony Liguori
2009-12-18 20:10 ` Sebastian Herbszt
2009-12-20 8:38 ` Gleb Natapov
2009-12-20 14:43 ` Anthony Liguori
2009-12-20 14:52 ` Gleb Natapov
2009-12-20 14:58 ` Anthony Liguori
2009-12-20 15:07 ` Gleb Natapov
2009-12-20 15:11 ` Anthony Liguori
2009-12-20 15:20 ` Avi Kivity
2009-12-20 15:31 ` Anthony Liguori
2009-12-20 15:35 ` Avi Kivity
2009-12-22 13:04 ` Paul Brook
2009-12-22 13:09 ` Avi Kivity
2009-12-22 15:11 ` Anthony Liguori
2009-12-22 15:54 ` Paul Brook
2009-12-22 16:16 ` Anthony Liguori
2009-12-20 15:23 ` Gleb Natapov
2009-12-20 15:28 ` Anthony Liguori
2009-12-20 15:33 ` Gleb Natapov
2009-12-20 15:39 ` Anthony Liguori
2009-12-20 15:52 ` Gleb Natapov
2009-12-20 16:08 ` Blue Swirl
2009-12-20 16:15 ` Gleb Natapov
2009-12-20 16:23 ` Blue Swirl
2009-12-20 17:48 ` Anthony Liguori
2009-12-21 1:59 ` Kevin O'Connor
2009-12-21 7:32 ` Gleb Natapov
2009-12-21 16:40 ` Anthony Liguori
2009-12-21 16:43 ` Gleb Natapov
2009-12-21 17:26 ` Anthony Liguori
2009-12-21 17:43 ` Gleb Natapov
2009-12-21 18:24 ` [Qemu-devel] Re: Re: [SeaBIOS] [PATCH 0/8] option rom loadingoverhaul Sebastian Herbszt
2009-12-21 18:36 ` Gleb Natapov
2009-12-21 19:28 ` Sebastian Herbszt
2009-12-21 19:57 ` Gleb Natapov
2009-12-21 19:17 ` [Qemu-devel] " Anthony Liguori
2009-12-21 19:39 ` Sebastian Herbszt
2009-12-21 19:53 ` Gleb Natapov
2009-12-21 20:16 ` Sebastian Herbszt
2009-12-22 7:58 ` Gleb Natapov
2009-12-22 14:57 ` Anthony Liguori
2009-12-21 19:48 ` Gleb Natapov
2009-12-21 19:13 ` [Qemu-devel] Re: [SeaBIOS] [PATCH 0/8] option rom loading overhaul Anthony Liguori
2009-12-21 19:43 ` Gleb Natapov [this message]
2009-12-21 23:54 ` Anthony Liguori
2009-12-22 20:50 ` [Qemu-devel] Re: Re: [SeaBIOS] [PATCH 0/8] option rom loadingoverhaul Sebastian Herbszt
2009-12-21 7:40 ` [Qemu-devel] Re: [SeaBIOS] [PATCH 0/8] option rom loading overhaul Gleb Natapov
2009-12-21 17:27 ` Michael S. Tsirkin
2010-01-12 4:48 ` Jamie Lokier
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=20091221194359.GF21163@redhat.com \
--to=gleb@redhat.com \
--cc=anthony@codemonkey.ws \
--cc=kevin@koconnor.net \
--cc=kraxel@redhat.com \
--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).