From patchwork Tue Nov 1 17:44:16 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Liu X-Patchwork-Id: 9407761 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 968D0600C8 for ; Tue, 1 Nov 2016 17:46:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8D3D928A00 for ; Tue, 1 Nov 2016 17:46:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8218C28C6A; Tue, 1 Nov 2016 17:46:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id EBC8D28A00 for ; Tue, 1 Nov 2016 17:46:45 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1c1d6k-0007nl-Su; Tue, 01 Nov 2016 17:44:22 +0000 Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1c1d6j-0007nf-1G for xen-devel@lists.xenproject.org; Tue, 01 Nov 2016 17:44:21 +0000 Received: from [85.158.139.211] by server-15.bemta-5.messagelabs.com id AB/48-13537-474D8185; Tue, 01 Nov 2016 17:44:20 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJLMWRWlGSWpSXmKPExsXitHSDvW7xFYk Ig84D2hbft0xmcmD0OPzhCksAYxRrZl5SfkUCa8buF0uYCw6JVkw4N5upgfG1YBcjJ4eEgL/E 5FmHGEFsNgFliZ+dvWwgtoiAtET/nHb2LkYuDmaBBUwSf/bMZAVJCAu4Sfx494YJxGYRUJF4u eA3C4jNK+Ak8fPORBaIoXIS54//ZAaxhQQUJDqmH2OCqBGUODnzCVgNs4CExMEXL4BqOIDquS X+dttPYOSZhaRqFpKqBYxMqxg1ilOLylKLdI3M9ZKKMtMzSnITM3N0DQ1M9XJTi4sT01NzEpO K9ZLzczcxAoOknoGBcQfj1S1+hxglOZiURHnvHJCIEOJLyk+pzEgszogvKs1JLT7EKMPBoSTB y3IZKCdYlJqeWpGWmQMMV5i0BAePkgivCEiat7ggMbc4Mx0idYpRUUqclxskIQCSyCjNg2uDx cglRlkpYV5GBgYGIZ6C1KLczBJU+VeM4hyMSsK8YiBTeDLzSuCmvwJazAS02DwJbHFJIkJKqo Gx5/U3wZ+qwiINsx1lLlQe/BRxpzy5zcCm2/BA4OVCoXu7+61S42JecunP/lD1yifjaeyb550 G5xV5UzO6Tt+4kPry2dobP17Ib/8h2Db96txt0bdPpE0rP7Rf+bPLmpvMTyaVHOvfdjYsVfCy TYvcRisX3Si++bt0Xi8zbjXbxDWpJ0fE6+w1JZbijERDLeai4kQACKLupowCAAA= X-Env-Sender: prvs=1065afaf3=wei.liu2@citrix.com X-Msg-Ref: server-3.tower-206.messagelabs.com!1478022258!64375202!1 X-Originating-IP: [66.165.176.63] X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n, received_headers: No Received headers X-StarScan-Received: X-StarScan-Version: 9.0.13; banners=-,-,- X-VirusChecked: Checked Received: (qmail 21158 invoked from network); 1 Nov 2016 17:44:19 -0000 Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63) by server-3.tower-206.messagelabs.com with RC4-SHA encrypted SMTP; 1 Nov 2016 17:44:19 -0000 X-IronPort-AV: E=Sophos;i="5.31,580,1473120000"; d="scan'208";a="395801687" From: Wei Liu To: Date: Tue, 1 Nov 2016 17:44:16 +0000 Message-ID: <1478022256-7089-1-git-send-email-wei.liu2@citrix.com> X-Mailer: git-send-email 2.1.4 MIME-Version: 1.0 X-DLP: MIA1 Cc: Stefano Stabellini , Wei Liu , Eduardo Habkost , Sander Eikelenboom , Igor Mammedov , Anthony PERARD , Xen-devel Subject: [Xen-devel] [PATCH v2] PCMachineState: introduce acpi_build_enabled field X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP Introduce this field to control whether ACPI build is enabled by a particular machine or accelerator. It defaults to true if the machine itself supports ACPI build. Xen accelerator will disable it because Xen is in charge of building ACPI tables for the guest. Signed-off-by: Wei Liu Reviewed-by: Stefano Stabellini Reviewed-by: Eduardo Habkost Acked-by: Eduardo Habkost --- Cc: Igor Mammedov Cc: Eduardo Habkost Cc: Anthony PERARD Cc: Stefano Stabellini Cc: Sander Eikelenboom v2: 1. drop acpi-build property 2. set acpi_build_enabled to acpi_has_build 3. replace acpi_has_build check in acpi_build() --- hw/i386/acpi-build.c | 2 +- hw/i386/pc.c | 2 ++ include/hw/i386/pc.h | 2 ++ xen-common.c | 6 ++++++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 5cd1da9..13cbbde 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -2953,7 +2953,7 @@ void acpi_setup(void) return; } - if (!pcmc->has_acpi_build) { + if (!pcms->acpi_build_enabled) { ACPI_BUILD_DPRINTF("ACPI build disabled. Bailing out.\n"); return; } diff --git a/hw/i386/pc.c b/hw/i386/pc.c index f56ea0f..fbd9aed 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -2159,6 +2159,8 @@ static void pc_machine_initfn(Object *obj) pcms->vmport = ON_OFF_AUTO_AUTO; /* nvdimm is disabled on default. */ pcms->acpi_nvdimm_state.is_enabled = false; + /* acpi build is enabled by default if machine supports it */ + pcms->acpi_build_enabled = PC_MACHINE_GET_CLASS(pcms)->has_acpi_build; } static void pc_machine_reset(void) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 98dc772..8eb517f 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -62,6 +62,8 @@ struct PCMachineState { AcpiNVDIMMState acpi_nvdimm_state; + bool acpi_build_enabled; + /* RAM information (sizes, addresses, configuration): */ ram_addr_t below_4g_mem_size, above_4g_mem_size; diff --git a/xen-common.c b/xen-common.c index 9099760..bacf962 100644 --- a/xen-common.c +++ b/xen-common.c @@ -9,6 +9,7 @@ */ #include "qemu/osdep.h" +#include "hw/i386/pc.h" #include "hw/xen/xen_backend.h" #include "qmp-commands.h" #include "sysemu/char.h" @@ -114,6 +115,11 @@ static void xen_change_state_handler(void *opaque, int running, static int xen_init(MachineState *ms) { + PCMachineState *pcms = PC_MACHINE(ms); + + /* Disable ACPI build because Xen handles it */ + pcms->acpi_build_enabled = false; + xen_xc = xc_interface_open(0, 0, 0); if (xen_xc == NULL) { xen_pv_printf(NULL, 0, "can't open xen interface\n");