From: Laszlo Ersek <lersek@redhat.com>
To: Jordan Justen <jljusten@gmail.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
KVM devel mailing list <kvm@vger.kernel.org>,
Juan Quintela <quintela@redhat.com>,
seabios@seabios.org,
qemu-devel qemu-devel <qemu-devel@nongnu.org>,
Kevin O'Connor <kevin@koconnor.net>,
ddutile@redhat.com, Anthony Liguori <anthony@codemonkey.ws>,
David Woodhouse <dwmw2@infradead.org>
Subject: Re: [Qemu-devel] KVM call agenda for 2013-05-28
Date: Fri, 31 May 2013 13:45:55 +0200 [thread overview]
Message-ID: <51A88D73.1090302@redhat.com> (raw)
In-Reply-To: <CAFe8ug--stQH7KW7Bzy7+eSsZ5W-9T4PtU7xpOfsozAd9kt5vA@mail.gmail.com>
On 05/31/13 09:09, Jordan Justen wrote:
> Why is updating the ACPI tables in seabios viewed as such a burden?
> Either qemu does it, or seabios... (And, OVMF too, but I don't think
> you guys are concerned with that. :)
I am :)
> On the flip side, why is moving the ACPI tables to QEMU such an issue?
> It seems like Xen and virtualbox both already do this. Why is running
> iasl not an issue for them?
I think something was mentioned about iasl having problems on BE
machines? I could be easily wrong but I *guess* qemu's hosts x targets
(emulate what on what) set is a proper superset of xen's and
virtualbox's. Presumably if you want to run an x86 guest on a MIPS host,
and also want to build qemu on the same MIPS (or SPARC) host, you'd have
to run iasl there too.
> Maybe we are doing lots of things horribly wrong in our OVMF ACPI
> tables :)
Impossible. :)
In earnest, I think what we have now is (mostly) correct, just not
extensive / flexible enough. No support for PCI hotplug or CPU hotplug,
none for S3 (although all of these tie into UEFI deeply), no MTRR setup,
no MPTABLE; let alone a non-PIIX chipset. (Well maybe I shouldn't lump
these under the "ACPI umbrella".)
> but I haven't seen it as much of a burden. (Of course,
> Laszlo has helped out with many of the ACPI changes in OVMF, so his
> opinion should be taken into consideration too. :)
It hasn't been a "burden" in the sense of me not liking the activity; I
actually like fiddling with knobs. It has certainly been extra work to
bring OVMF's ACPI tables closer to SeaBIOS's functionality / flexibility
(and we still lag behind it quite.).
Due to licensing differences I can't just port code from SeaBIOS to OVMF
(and I never have without explicit permission), so it's been a lot of
back and forth with acpidump / iasl -d in guests (massage OVMF, boot
guest, check guest dmesg / lspci, dump tables, compare, repeat), brain
picking colleagues, the ACPI and PIIX specs and so on. I have a page on
the RH intranet dedicated to this. When something around these parts is
being changed (or looks like it could be changed) in SeaBIOS, or between
qemu and SeaBIOS, I always must be alert and consider reimplementing it
in, or porting it with permission to, OVMF. (Most recent example:
pvpanic device -- currently only in SeaBIOS.)
It worries me that if I slack off, or am busy with something else, or
simply don't notice, then the gap will widen again. I appreciate
learning a bunch about ACPI, and don't mind the days of work that went
into some of my simple-looking ACPI patches for OVMF, but had the tables
come from a common (programmatic) source, none of this would have been
an issue, and I wouldn't have felt even occasionally that ACPI patches
for OVMF were both duplicate work *and* futile (considering how much
ahead SeaBIOS was).
I don't mind reimplementing stuff, or porting it with permission, going
forward, but the sophisticated parts in SeaBIOS are a hard nut. For
example I'll never be able to auto-extract offsets from generated AML
and patch the AML using those offsets; the edk2 build tools (a project
separate from edk2) don't support this, and it takes several months to
get a thing as simple as gcc-47 build flags into edk2-buildtools.
Instead I have to write template ASL, compile it to AML, hexdump the
result, verify it against the AML grammar in the ACPI spec (offsets
aren't obvious, BytePrefix and friends are a joy), define & initialize a
packed struct or array in OVMF, and patch the template AML using fixed
field names or array subscripts. Workable, but dog slow. If the ACPI
payload came from up above, we might be as well provided with a list of
(canonical name, offset, size) triplets, and could perhaps blindly patch
the contents. (Not unlike Michael's linker code for connecting tables
into a hierarchy.)
AFAIK most recently iasl got built-in support for offset extraction (and
in the process the current SeaBIOS build method was broken...), so that
part might get easier in the future.
Oh well it's Friday, sorry about this rant! :) I'll happily do what I
can in the current status quo, but frequently, it won't amount to much.
Thanks,
Laszlo
next prev parent reply other threads:[~2013-05-31 11:44 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-23 12:41 [Qemu-devel] KVM call agenda for 2013-05-28 Michael S. Tsirkin
2013-05-24 3:02 ` [Qemu-devel] [SeaBIOS] " li guang
2013-05-28 23:53 ` [Qemu-devel] " Kevin O'Connor
2013-05-29 8:45 ` Michael S. Tsirkin
2013-05-29 16:12 ` Anthony Liguori
2013-05-29 16:19 ` Michael S. Tsirkin
2013-05-30 6:37 ` Gerd Hoffmann
2013-06-02 15:05 ` [Qemu-devel] [SeaBIOS] " Gleb Natapov
2013-06-02 15:09 ` Michael S. Tsirkin
2013-06-02 15:40 ` Gleb Natapov
2013-06-02 15:53 ` Michael S. Tsirkin
2013-06-03 6:25 ` Paolo Bonzini
2013-05-29 8:49 ` Gerd Hoffmann
2013-05-29 9:17 ` Michael S. Tsirkin
2013-05-29 9:42 ` Gerd Hoffmann
2013-05-29 9:46 ` Michael S. Tsirkin
2013-05-29 16:18 ` Anthony Liguori
2013-05-29 16:28 ` Michael S. Tsirkin
2013-05-29 18:17 ` Michael S. Tsirkin
2013-05-29 16:35 ` Markus Armbruster
2013-05-30 1:12 ` Kevin O'Connor
2013-05-31 12:16 ` David Woodhouse
2013-05-30 6:12 ` Gerd Hoffmann
2013-05-30 9:23 ` David Woodhouse
2013-05-30 11:13 ` Laszlo Ersek
2013-05-30 12:19 ` David Woodhouse
2013-05-30 12:27 ` Michael S. Tsirkin
2013-05-30 12:43 ` Laszlo Ersek
2013-05-30 16:20 ` Jordan Justen
2013-05-30 16:41 ` Laszlo Ersek
2013-05-30 16:57 ` Jordan Justen
2013-05-30 17:37 ` Laszlo Ersek
2013-05-30 17:45 ` Michael S. Tsirkin
2013-05-31 9:32 ` Gerd Hoffmann
2013-05-31 9:55 ` Peter Stuge
2013-05-31 23:01 ` Jordan Justen
2013-06-03 5:28 ` Gerd Hoffmann
2013-05-30 17:44 ` Michael S. Tsirkin
2013-05-31 12:09 ` David Woodhouse
2013-05-31 19:48 ` Patrick Georgi
2013-05-29 9:54 ` [Qemu-devel] " Michael S. Tsirkin
2013-05-31 2:34 ` Kevin O'Connor
2013-05-31 7:09 ` Jordan Justen
2013-05-31 8:13 ` [Qemu-devel] [SeaBIOS] " Peter Stuge
2013-05-31 10:05 ` Gerd Hoffmann
2013-05-31 13:03 ` Laszlo Ersek
2013-06-01 3:41 ` Kevin O'Connor
2013-05-31 11:45 ` Laszlo Ersek [this message]
2013-05-31 13:04 ` [Qemu-devel] " Anthony Liguori
2013-05-31 14:08 ` David Woodhouse
2013-05-31 14:28 ` Laszlo Ersek
2013-05-31 15:43 ` Anthony Liguori
2013-05-31 16:33 ` David Woodhouse
2013-05-31 16:54 ` Laszlo Ersek
2013-05-31 17:06 ` Anthony Liguori
2013-05-31 18:09 ` Paolo Bonzini
2013-05-31 18:35 ` Anthony Liguori
2013-05-31 19:28 ` Jordan Justen
2013-05-31 20:44 ` Anthony Liguori
2013-05-31 16:45 ` Laszlo Ersek
[not found] ` <51A8AD52.3070901@redhat.com>
2013-05-31 14:38 ` Anthony Liguori
2013-05-31 16:36 ` Laszlo Ersek
2013-05-31 17:10 ` Anthony Liguori
2013-05-31 19:02 ` Jordan Justen
2013-05-31 20:27 ` Anthony Liguori
2013-05-31 21:03 ` Jordan Justen
2013-06-01 0:01 ` Laszlo Ersek
2013-06-01 3:16 ` Jordan Justen
2013-06-02 9:43 ` Michael S. Tsirkin
2013-06-03 7:24 ` Jordan Justen
2013-05-31 12:58 ` Anthony Liguori
2013-05-31 13:02 ` David Woodhouse
2013-06-01 3:11 ` Kevin O'Connor
2013-06-02 9:54 ` Michael S. Tsirkin
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=51A88D73.1090302@redhat.com \
--to=lersek@redhat.com \
--cc=anthony@codemonkey.ws \
--cc=ddutile@redhat.com \
--cc=dwmw2@infradead.org \
--cc=jljusten@gmail.com \
--cc=kevin@koconnor.net \
--cc=kvm@vger.kernel.org \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=seabios@seabios.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).