From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55686) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xb9i2-0006hu-6T for qemu-devel@nongnu.org; Mon, 06 Oct 2014 10:56:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xb9hs-0000n3-RF for qemu-devel@nongnu.org; Mon, 06 Oct 2014 10:56:22 -0400 Received: from mail-qg0-x233.google.com ([2607:f8b0:400d:c04::233]:53977) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xb9hs-0000mn-Mz for qemu-devel@nongnu.org; Mon, 06 Oct 2014 10:56:12 -0400 Received: by mail-qg0-f51.google.com with SMTP id z107so3736954qgd.24 for ; Mon, 06 Oct 2014 07:56:12 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Mon, 6 Oct 2014 16:56:01 +0200 Message-Id: <1412607364-14141-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH v2 0/3] Migration-safe ACPI table sizing algorithm List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: mst@redhat.com In the emergency last-minute patches of QEMU 2.1 we did two things: - fixed migration problems from 1.7 or 2.0 to 2.1 due to changes in ACPI table sizes - ensured that future versions will not break migration compatibility with 2.2 for reasonable configurations (with ACPI tables smaller than a hundred kilobytes, roughly) However, this came at the cost of wasting 128 KB unconditionally on even the smaller configuration, and we didn't provide a mechanism to ensure compatibility with larger configurations. This series provides this mechanism. As mentioned early, the design is to consider the SSDT immutable and versioned (together with other non-AML tables such as HPET, TPMA and MADT, SRAT, MCFG, DMAR). The DSDT instead can change more or less arbitrarily. To do this, we add padding after the DSDT to allow for future growth (patch 1). Once we do this, the size of the ACPI table fw_cfg "file" is constant given a machine type and a command-line, so we do not need anymore the larger 128KB padding (patch 2). Patch 3 is just cleanups. Paolo v1->v2: drop linuxboot changes, instead modify the option ROM in a separate patch Paolo Bonzini (3): pc: introduce new ACPI table sizing algorithm pc: go back to smaller ACPI tables pc: clean up pre-2.1 compatibility code hw/i386/acpi-build.c | 20 +++++++++++--------- hw/i386/pc_piix.c | 20 +++++++++++++++++++- hw/i386/pc_q35.c | 6 ++++-- include/hw/i386/pc.h | 2 ++ 4 files changed, 36 insertions(+), 12 deletions(-) -- 2.1.0