From: "Michael S. Tsirkin" <mst@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: pbonzini@redhat.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 15/19] pc: acpi: bump DSDT revision compliance to v2
Date: Mon, 26 Oct 2015 13:17:41 +0200 [thread overview]
Message-ID: <20151026130857-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <20151026120651.59505ebb@nial.brq.redhat.com>
On Mon, Oct 26, 2015 at 12:06:51PM +0100, Igor Mammedov wrote:
> On Mon, 26 Oct 2015 12:07:50 +0200
> "Michael S. Tsirkin" <mst@redhat.com> wrote:
>
> > On Mon, Oct 26, 2015 at 11:03:01AM +0100, Igor Mammedov wrote:
> > > On Sat, 24 Oct 2015 22:40:59 +0300
> > > "Michael S. Tsirkin" <mst@redhat.com> wrote:
> > >
> > > > On Fri, Oct 23, 2015 at 04:57:18PM +0200, Igor Mammedov wrote:
> > > > > it turns on 64-bit integer handling in OSPM, which we could use
> > > > > for writing simpler/smaller AML code.
> > > > > Tested with Windows XP and Windows Server 2008, Linux:
> > > > > * XP doesn't care about revision and continues to use 32 integers
> > > > > and boots just fine with this change.
> > > > > * WS 2008 and Linux - support rev2 and use 64-bit integers
> > > > >
> > > > > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > > >
> > > > This is still planned, right? IIUC you didn't post any code
> > > > that needs the 64 bit math.
> > > nope, the next patch 16/19 uses 64-bit math,
> > >
> > > it greatly simplifies _CRS as we don't have to do
> > > 64-bit math manually using 32-bit integers.
> > >
> > > And even if we put new MHPD.MCRS() that uses 64-bit math in SSDT,
> > > it won't crash XP unless someone would try to do memory hotplug
> > >
> > > and even it could be 'fixed' if we check _REV on every
> > > hotplug event, it's a bit ugly but should work.
> >
> > Aha. That's exactly what I said. All that patch commit log
> > says is
> > pc: acpi: memhp: move MHPD.MCRS method into MHPT table
> > when in fact you also rework it all to use 64 bit math.
> yep, it's my fault. I'll fix it.
Don't fix the comment. Just do it the right way.
> >
> > So pls don't do this. Pls start by rewriting ASL in C
> > while keeping AML code identical. Cleanups - next.
> That's what I'm trying to avoid in this case as
> reworked code is much simpler than the original ASL.
> Rewriting original complex MHPD.MCRS() ASL into C and
> immediately replacing it with simplified version is
> rather counterproductive especially taking in account that
> 'make check' tests will fail anyway since code is moved
> between tables and C-produced AML doesn't exactly match
> blobs produced by a particular IASL version anyway.
So make it match.
It seems pretty robust ATM, since we disassemble and
only compare the dis-assembled output.
Let's keep that invariant.
> But I can certainly do/split it other way around,
> simplify ASL first and then rewrite result in C.
> That should make reviewing easier even if tests
> are broken.
So your untested (in the field, I trust you to test your code) C matches
untested ASL. This doesn't help too much.
Sorry, IMO that's the wrong way to prioritize things. I value ease of
testing and reviewing patches much higher than ease of writing them,
and stability higher than any individual feature.
The original migration into QEMU was completely seemless because of full
bit for bit compatibility with seabios.
I bent the rules when the stuff was first rewritten in C and this
introduced some regressions, but there was just too much demand for the
stuff, people had real trouble hacking in 3 languages (python/C/ASL),
and that was holding up multiple features so some instability was worth
it.
Nothing like this here, this is just general cleanup.
Let's do it the slow, safe way please.
> >
> > > >
> > > > > ---
> > > > > hw/i386/acpi-build.c | 2 +-
> > > > > hw/i386/acpi-dsdt.dsl | 2 +-
> > > > > hw/i386/q35-acpi-dsdt.dsl | 2 +-
> > > > > 3 files changed, 3 insertions(+), 3 deletions(-)
> > > > >
> > > > > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> > > > > index 8add4d9..c929540 100644
> > > > > --- a/hw/i386/acpi-build.c
> > > > > +++ b/hw/i386/acpi-build.c
> > > > > @@ -1484,7 +1484,7 @@ build_dsdt(GArray *table_data, GArray *linker, AcpiMiscInfo *misc)
> > > > >
> > > > > memset(dsdt, 0, sizeof *dsdt);
> > > > > build_header(linker, table_data, dsdt, "DSDT",
> > > > > - misc->dsdt_size, 1);
> > > > > + misc->dsdt_size, 2);
> > > > > }
> > > > >
> > > > > static GArray *
> > > > > diff --git a/hw/i386/acpi-dsdt.dsl b/hw/i386/acpi-dsdt.dsl
> > > > > index 8dba096..6d46b36 100644
> > > > > --- a/hw/i386/acpi-dsdt.dsl
> > > > > +++ b/hw/i386/acpi-dsdt.dsl
> > > > > @@ -22,7 +22,7 @@ ACPI_EXTRACT_ALL_CODE AcpiDsdtAmlCode
> > > > > DefinitionBlock (
> > > > > "acpi-dsdt.aml", // Output Filename
> > > > > "DSDT", // Signature
> > > > > - 0x01, // DSDT Compliance Revision
> > > > > + 0x02, // DSDT Compliance Revision
> > > > > "BXPC", // OEMID
> > > > > "BXDSDT", // TABLE ID
> > > > > 0x1 // OEM Revision
> > > > > diff --git a/hw/i386/q35-acpi-dsdt.dsl b/hw/i386/q35-acpi-dsdt.dsl
> > > > > index 7be7b37..ecefdec 100644
> > > > > --- a/hw/i386/q35-acpi-dsdt.dsl
> > > > > +++ b/hw/i386/q35-acpi-dsdt.dsl
> > > > > @@ -28,7 +28,7 @@ ACPI_EXTRACT_ALL_CODE Q35AcpiDsdtAmlCode
> > > > > DefinitionBlock (
> > > > > "q35-acpi-dsdt.aml",// Output Filename
> > > > > "DSDT", // Signature
> > > > > - 0x01, // DSDT Compliance Revision
> > > > > + 0x02, // DSDT Compliance Revision
> > > > > "BXPC", // OEMID
> > > > > "BXDSDT", // TABLE ID
> > > > > 0x2 // OEM Revision
> > > > > --
> > > > > 1.8.3.1
next prev parent reply other threads:[~2015-10-26 11:17 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-23 14:57 [Qemu-devel] [PATCH 00/19] pc: acpi: move memory hotplug out of DSDT/SSDT into custom table Igor Mammedov
2015-10-23 14:57 ` [Qemu-devel] [PATCH 01/19] acpi: aml: add aml_lgreater_equal() and aml_load_table() Igor Mammedov
2015-10-23 14:57 ` [Qemu-devel] [PATCH 02/19] acpi: add aml_mutex(), aml_acquire(), aml_release() Igor Mammedov
2015-10-23 14:57 ` [Qemu-devel] [PATCH 03/19] acpi: aml: add aml_create_qword_field() Igor Mammedov
2015-10-23 14:57 ` [Qemu-devel] [PATCH 04/19] acpi: aml: add aml_decrement() and aml_subtract() Igor Mammedov
2015-10-23 14:57 ` [Qemu-devel] [PATCH 05/19] acpi: aml: add aml_call0() helper Igor Mammedov
2015-10-23 14:57 ` [Qemu-devel] [PATCH 06/19] pc: acpi: move SSDT part of memhp into a custom table Igor Mammedov
2015-10-24 17:41 ` Michael S. Tsirkin
2015-10-24 17:59 ` Michael S. Tsirkin
2015-10-25 13:33 ` Laszlo Ersek
2015-10-26 13:36 ` Igor Mammedov
2015-10-24 19:37 ` Michael S. Tsirkin
2015-10-23 14:57 ` [Qemu-devel] [PATCH 07/19] pc: acpi: memhp: move MHPD._STA method into MHPT table Igor Mammedov
2015-10-23 14:57 ` [Qemu-devel] [PATCH 08/19] pc: acpi: memhp: move MHPD.MLCK mutex into NHPT table Igor Mammedov
2015-10-23 14:57 ` [Qemu-devel] [PATCH 09/19] pc: acpi: memhp: move MHPD.MSCN method into MHPT table Igor Mammedov
2015-10-23 14:57 ` [Qemu-devel] [PATCH 10/19] pc: acpi: make memory device's _UID integer Igor Mammedov
2015-10-23 14:57 ` [Qemu-devel] [PATCH 11/19] pc: acpi: memhp: move MHPD.MRST method into MHPT table Igor Mammedov
2015-10-23 14:57 ` [Qemu-devel] [PATCH 12/19] pc: acpi: memhp: move MHPD.MPXM " Igor Mammedov
2015-10-23 14:57 ` [Qemu-devel] [PATCH 13/19] pc: acpi: memhp: move MHPD.MOST " Igor Mammedov
2015-10-23 14:57 ` [Qemu-devel] [PATCH 14/19] pc: acpi: memhp: move MHPD.MEJ0 " Igor Mammedov
2015-10-23 14:57 ` [Qemu-devel] [PATCH 15/19] pc: acpi: bump DSDT revision compliance to v2 Igor Mammedov
2015-10-24 19:40 ` Michael S. Tsirkin
2015-10-26 10:03 ` Igor Mammedov
2015-10-26 10:07 ` Michael S. Tsirkin
2015-10-26 11:06 ` Igor Mammedov
2015-10-26 11:17 ` Michael S. Tsirkin [this message]
2015-10-23 14:57 ` [Qemu-devel] [PATCH 16/19] pc: acpi: memhp: move MHPD.MCRS method into MHPT table Igor Mammedov
2015-10-23 14:57 ` [Qemu-devel] [PATCH 17/19] pc: acpi: memhp: move MHPD Device along with _UID/_HID " Igor Mammedov
2015-10-23 14:57 ` [Qemu-devel] [PATCH 18/19] pc: acpi: memhp: remove acpi-dsdt-mem-hotplug.dsl and move \_GPE._E03 into SSDT Igor Mammedov
2015-10-23 14:57 ` [Qemu-devel] [PATCH 19/19] pc: acpi: memhp: cleanup MEMORY_HOTPLUG_IO_REGION usage Igor Mammedov
2015-10-23 16:38 ` [Qemu-devel] [PATCH 00/19] pc: acpi: move memory hotplug out of DSDT/SSDT into custom table Laszlo Ersek
2015-10-24 17:39 ` 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=20151026130857-mutt-send-email-mst@redhat.com \
--to=mst@redhat.com \
--cc=imammedo@redhat.com \
--cc=pbonzini@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).