From: "Michael S. Tsirkin" <mst@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: imammedo@redhat.com, qemu-devel@nongnu.org, dgilbert@redhat.com
Subject: Re: [Qemu-devel] [PATCH 0/4] acpi: move common parts of the SSDT to the DSDT (and preview of things to come)
Date: Wed, 24 Dec 2014 16:19:22 +0200 [thread overview]
Message-ID: <20141224141922.GA28410@redhat.com> (raw)
In-Reply-To: <1419426766-1593-1-git-send-email-pbonzini@redhat.com>
On Wed, Dec 24, 2014 at 02:12:39PM +0100, Paolo Bonzini wrote:
> Right now, the SSDT/DSDT is split in three parts:
>
> - code that doesn't need patching goes in the DSDT. Furthermore,
> code in this category that is shared between PIIX4 and Q35 is
> handled via #include. There was one exception, the SMC._STA
> method is patched and is in the DSDT.
>
> - shared code that needs patching goes in the SSDT
>
> - template-based code that comes from command line arguments
> goes in the SSDT as well
>
> This series changes things to:
>
> - code that is chipset-specific goes in the DSDT first.
> Right now none of this needs patching
>
> - code that is not chipset-specific, some of which needs
> patching, goes in the DSDT second
>
> - template-based code that comes from command line arguments
> goes in the SSDT
>
> Patch 1 moves ssdt-misc ("common code that needs patching")
> to the DSDT. Patches 2-4 stop using the C preprocessor
> in the DSDTs.
>
> Patches 5-7 show why this could be useful. They add padding
> in fw_cfg after the DSDT, and in exchange stop padding the ACPI
> tables to 128K. This fixes migration problems (ROM sizes, RSDP)
> because the ACPI tables are split in two:
>
> 1) fixed tables and the DSDT can be changed freely;
>
> 2) tables that vary depending on the command-line arguments (SSDT,
> MADT, ...) are versioned and, given a machine type, they have to be
> byte-equivalent across QEMU versions >= 2.3.
>
> Patches 5 and 6 introduce a new sizing algorithm. Patch 7 use it
> to fix the migration problems.
>
> Only the first 4 or 6 patches are meant for inclusion. Patch 7 should
> only be committed after Igor's series that rewrites the templating
> mechanism in C. That makes it much simpler to track changes to the ACPI
> tables, and removes dependencies on the IASL version that could cause
> some head-scratching.
>
> The conflicts with Igor's series are nontrivial but overall
> not complicated to solve. Igor rewrote ssdt-misc in C, but those
> parts can be easily removed from his series. He has plans to
> build the DSDT from C, and if that materializes it can apply to
> acpi-dsdt-common.dsl too.
>
> Paolo
So I'll have to review in detail, overall the patches
do look pretty clean.
Given the amount of pain caused by cross version migration
issues, I am inclined to do both: arrange code in a way
that makes keeping things constant easier, and have
some solutions for the inevitable time when we'll find we
have to change things we didn't expect.
Defense in depth, if you like.
Makes sense?
> Paolo Bonzini (7):
> pc: append ssdt-misc.dsl to the DSDT
> pc: rename ssdt-misc to dsdt-common
> pc: move common parts of the DSDT to dsdt-common
> pc: merge DSDT common parts into acpi-dsdt-common.dsl
> pc: introduce new ACPI table sizing algorithm
> pc: clean up pre-2.1 compatibility code
> pc: go back to smaller ACPI tables
>
> hw/i386/Makefile.objs | 2 +-
> hw/i386/acpi-build.c | 107 +++--
> hw/i386/acpi-dsdt-common.dsl | 467 +++++++++++++++++++++
> ...ex.generated => acpi-dsdt-common.hex.generated} | 4 +-
> hw/i386/acpi-dsdt-dbug.dsl | 41 --
> hw/i386/acpi-dsdt-hpet.dsl | 48 ---
> hw/i386/acpi-dsdt-isa.dsl | 128 ------
> hw/i386/acpi-dsdt-mem-hotplug.dsl | 176 --------
> hw/i386/acpi-dsdt.dsl | 12 +-
> hw/i386/pc_piix.c | 9 +-
> hw/i386/pc_q35.c | 6 +-
> hw/i386/q35-acpi-dsdt.dsl | 9 +-
> hw/i386/ssdt-misc.dsl | 122 ------
> include/hw/i386/pc.h | 2 +
> 14 files changed, 550 insertions(+), 583 deletions(-)
> create mode 100644 hw/i386/acpi-dsdt-common.dsl
> rename hw/i386/{ssdt-misc.hex.generated => acpi-dsdt-common.hex.generated} (96%)
> delete mode 100644 hw/i386/acpi-dsdt-dbug.dsl
> delete mode 100644 hw/i386/acpi-dsdt-hpet.dsl
> delete mode 100644 hw/i386/acpi-dsdt-isa.dsl
> delete mode 100644 hw/i386/acpi-dsdt-mem-hotplug.dsl
> delete mode 100644 hw/i386/ssdt-misc.dsl
>
> --
> 1.8.3.1
next prev parent reply other threads:[~2014-12-24 14:19 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-24 13:12 [Qemu-devel] [PATCH 0/4] acpi: move common parts of the SSDT to the DSDT (and preview of things to come) Paolo Bonzini
2014-12-24 13:12 ` [Qemu-devel] [PATCH 1/4] pc: append ssdt-misc.dsl to the DSDT Paolo Bonzini
2014-12-24 13:12 ` [Qemu-devel] [PATCH 2/4] pc: rename ssdt-misc to dsdt-common Paolo Bonzini
2014-12-24 13:12 ` [Qemu-devel] [PATCH 3/4] pc: move common parts of the DSDT " Paolo Bonzini
2014-12-24 13:12 ` [Qemu-devel] [PATCH 4/4] pc: merge DSDT common parts into acpi-dsdt-common.dsl Paolo Bonzini
2014-12-24 13:12 ` [Qemu-devel] [PATCH 5/4] pc: introduce new ACPI table sizing algorithm Paolo Bonzini
2014-12-24 13:12 ` [Qemu-devel] [PATCH 6/4] pc: clean up pre-2.1 compatibility code Paolo Bonzini
2014-12-24 13:12 ` [Qemu-devel] [PATCH 7/4] pc: go back to smaller ACPI tables Paolo Bonzini
2014-12-24 13:17 ` [Qemu-devel] [PATCH 0/4] acpi: move common parts of the SSDT to the DSDT (and preview of things to come) Paolo Bonzini
2014-12-24 14:19 ` Michael S. Tsirkin [this message]
2014-12-24 14:43 ` Paolo Bonzini
2014-12-24 16:15 ` Michael S. Tsirkin
2015-01-19 12:22 ` Paolo Bonzini
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=20141224141922.GA28410@redhat.com \
--to=mst@redhat.com \
--cc=dgilbert@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).