From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39158) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YKosf-0005PE-U6 for qemu-devel@nongnu.org; Mon, 09 Feb 2015 09:00:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YKosZ-0003p8-Sn for qemu-devel@nongnu.org; Mon, 09 Feb 2015 09:00:05 -0500 Received: from mx1.redhat.com ([209.132.183.28]:49214) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YKosZ-0003oh-MK for qemu-devel@nongnu.org; Mon, 09 Feb 2015 08:59:59 -0500 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t19DxwQn005812 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Mon, 9 Feb 2015 08:59:58 -0500 From: Igor Mammedov Date: Mon, 9 Feb 2015 13:59:52 +0000 Message-Id: <1423490395-22054-1-git-send-email-imammedo@redhat.com> Subject: [Qemu-devel] [PATCH v4 0/3] pc: acpi-build: make linker & RSDP tables dynamic List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: mst@redhat.com, marcel.a@redhat.com changes since v3: * split out linker changes * fix Michael's patch, by passing build_state to callback so it would actually do something * split out RSDP migration in separate patch * s/imutable/immutable/ Patches 1-2: fix reboot issue after bridge hotplug Patch 3: addresses RSDP reading race migration issue for new machine types Linker and RSDP tables are build only once, so if later during rebuild sizes of other ACPI tables change pointers will be patched incorrectly due to wrong offsets in RSDP and linker. To fix it rebuild linker and RSDP tables along with the rest of ACPI tables so that they would have offsets that match just built tables. Here is a simple reproducer: 1: hotplug bridge using command: device_add pci-bridge,chassis_nr=1 2: reset system from monitor: system_reset As result pointers to ACPI tables are not correct and guest can't read/parse ACPI tables and on top of it linker corrupted them by patching at stale offsets. Windows guests just refuses to boot and Linux guests are more resilient and try to boot without ACPI, sometimes successfully. Also make sure that new machine types won't see RSDP changed in the middle of reading duing migration, by migrating it along with the rest of the tables. Igor Mammedov (2): pc: acpi-build: update linker on guest access pc: acpi-build: migrate RSDP table Michael S. Tsirkin (1): acpi: update RSDP on guest access hw/i386/acpi-build.c | 33 ++++++++++++++++++++++++--------- hw/i386/pc_piix.c | 3 +++ hw/i386/pc_q35.c | 3 +++ include/hw/i386/pc.h | 1 + 4 files changed, 31 insertions(+), 9 deletions(-) -- 1.8.3.1