From patchwork Tue Aug 16 10:24:58 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shannon Zhao X-Patchwork-Id: 74000 Delivered-To: patch@linaro.org Received: by 10.140.29.52 with SMTP id a49csp1919639qga; Tue, 16 Aug 2016 03:32:14 -0700 (PDT) X-Received: by 10.107.27.144 with SMTP id b138mr39388868iob.163.1471343531480; Tue, 16 Aug 2016 03:32:11 -0700 (PDT) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org. [192.237.175.120]) by mx.google.com with ESMTPS id t7si5311859iof.176.2016.08.16.03.32.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Aug 2016 03:32:11 -0700 (PDT) Received-SPF: neutral (google.com: 192.237.175.120 is neither permitted nor denied by best guess record for domain of xen-devel-bounces@lists.xen.org) client-ip=192.237.175.120; Authentication-Results: mx.google.com; spf=neutral (google.com: 192.237.175.120 is neither permitted nor denied by best guess record for domain of xen-devel-bounces@lists.xen.org) smtp.mailfrom=xen-devel-bounces@lists.xen.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZbd4-0002Yk-QU; Tue, 16 Aug 2016 10:29:54 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZbd3-0002Y8-Ss for xen-devel@lists.xen.org; Tue, 16 Aug 2016 10:29:53 +0000 Received: from [193.109.254.147] by server-7.bemta-6.messagelabs.com id BE/6A-15404-12BE2B75; Tue, 16 Aug 2016 10:29:53 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrGIsWRWlGSWpSXmKPExsVSPpHPSVfh9aZ wg1V/FCyWfFzM4sDocXT3b6YAxijWzLyk/IoE1owP17YwFqxTr7j1YD9rA+NM2S5GLg4hgVOM Eje/3GKBcPYwSlzeOYW9i5GTg01AV+LjRghbREBWYnXXHHaQImaB64wSd95vYwVJCAsES9zpa mYDsVkEVCV2/ugCi/MKeEh8Ov0TLC4hoCGxsncC0AYODk4BT4lrU8DCQkAlp2cuhCoXlDg58w kLiM0sICFx8MULZohWRYm29SehxkhKHFxxA+xQCZCrX8x7xQQyU0LAVKKpmWMCo+AsJKNmIRm 1gJFpFaN6cWpRWWqRroleUlFmekZJbmJmjq6hgZlebmpxcWJ6ak5iUrFecn7uJkZgeDIAwQ7G 7sv+hxglOZiURHlnTtwYLsSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mC9+bLTeFCgkWp6akVaZk5w EiBSUtw8CiJ8L4BSfMWFyTmFmemQ6ROMSpKifMuAEkIgCQySvPg2mDReYlRVkqYlxHoECGegt Si3MwSVPlXjOIcjErCEON5MvNK4Ka/AlrMBLRYX3oDyOKSRISUVAPjqqluGbGHjx4Qd9Pn3R5 ZeD33zudvj5/6NC5ju3I86u+N3F32aw2KJ75IMnJ4rVx44Z/Njn1X54ZyJIouXlZ/zqVHRPXI Gaf9Ql2PwjW+VW1i3XbazfKtUlGX+GW7jIqy3bM7FSr9BWYv+cGXMblMUsxEVJDn1lMFVSf1S hEP7nXyt7TM7v9QYinOSDTUYi4qTgQAlvV5UskCAAA= X-Env-Sender: zhaoshenglong@huawei.com X-Msg-Ref: server-6.tower-27.messagelabs.com!1471343389!54272382!1 X-Originating-IP: [119.145.14.66] X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: VHJ1c3RlZCBJUDogMTE5LjE0NS4xNC42NiA9PiA4NTI3\n X-StarScan-Received: X-StarScan-Version: 8.84; banners=-,-,- X-VirusChecked: Checked Received: (qmail 37691 invoked from network); 16 Aug 2016 10:29:52 -0000 Received: from szxga03-in.huawei.com (HELO szxga03-in.huawei.com) (119.145.14.66) by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP; 16 Aug 2016 10:29:52 -0000 Received: from 172.24.1.47 (EHLO szxeml434-hub.china.huawei.com) ([172.24.1.47]) by szxrg03-dlp.huawei.com (MOS 4.4.3-GA FastPath queued) with ESMTP id CGJ21732; Tue, 16 Aug 2016 18:26:19 +0800 (CST) Received: from HGHY1Z002260041.china.huawei.com (10.177.16.142) by szxeml434-hub.china.huawei.com (10.82.67.225) with Microsoft SMTP Server id 14.3.235.1; Tue, 16 Aug 2016 18:25:32 +0800 From: Shannon Zhao To: Date: Tue, 16 Aug 2016 18:24:58 +0800 Message-ID: <1471343113-10652-2-git-send-email-zhaoshenglong@huawei.com> X-Mailer: git-send-email 1.9.0.msysgit.0 In-Reply-To: <1471343113-10652-1-git-send-email-zhaoshenglong@huawei.com> References: <1471343113-10652-1-git-send-email-zhaoshenglong@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.177.16.142] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020204.57B2EA4D.013A, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0, ip=0.0.0.0, so=2013-05-26 15:14:31, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: 4ba1b36960c593bde8669f49bbd76177 Cc: sstabellini@kernel.org, wei.liu2@citrix.com, ian.jackson@eu.citrix.com, peter.huangpeng@huawei.com, julien.grall@arm.com, shannon.zhao@linaro.org, boris.ostrovsky@oracle.com Subject: [Xen-devel] [PATCH v4 01/16] tools/libxl: Add an unified configuration option for ACPI 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" From: Shannon Zhao Since the existing configuration option "u.hvm.acpi" is x86 specific and we want to reuse it on ARM as well, add a unified option "acpi" for x86 and ARM, and for ARM it's disabled by default. Signed-off-by: Shannon Zhao --- tools/libxl/libxl_create.c | 9 ++++++++- tools/libxl/libxl_dm.c | 6 ++++-- tools/libxl/libxl_types.idl | 4 ++++ tools/libxl/xl_cmdimpl.c | 2 +- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c index 08822e3..3043b1f 100644 --- a/tools/libxl/libxl_create.c +++ b/tools/libxl/libxl_create.c @@ -215,6 +215,12 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc, if (!b_info->event_channels) b_info->event_channels = 1023; +#if defined(__arm__) || defined(__aarch64__) + libxl_defbool_setdefault(&b_info->acpi, false); +#else + libxl_defbool_setdefault(&b_info->acpi, true); +#endif + switch (b_info->type) { case LIBXL_DOMAIN_TYPE_HVM: if (b_info->shadow_memkb == LIBXL_MEMKB_DEFAULT) @@ -454,7 +460,8 @@ int libxl__domain_build(libxl__gc *gc, localents = libxl__calloc(gc, 9, sizeof(char *)); i = 0; localents[i++] = "platform/acpi"; - localents[i++] = libxl_defbool_val(info->u.hvm.acpi) ? "1" : "0"; + localents[i++] = (libxl_defbool_val(info->acpi) && + libxl_defbool_val(info->u.hvm.acpi)) ? "1" : "0"; localents[i++] = "platform/acpi_s3"; localents[i++] = libxl_defbool_val(info->u.hvm.acpi_s3) ? "1" : "0"; localents[i++] = "platform/acpi_s4"; diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c index de16a59..12e4084 100644 --- a/tools/libxl/libxl_dm.c +++ b/tools/libxl/libxl_dm.c @@ -583,7 +583,8 @@ static int libxl__build_device_model_args_old(libxl__gc *gc, if (b_info->u.hvm.soundhw) { flexarray_vappend(dm_args, "-soundhw", b_info->u.hvm.soundhw, NULL); } - if (libxl_defbool_val(b_info->u.hvm.acpi)) { + if (libxl_defbool_val(b_info->acpi) && + libxl_defbool_val(b_info->u.hvm.acpi)) { flexarray_append(dm_args, "-acpi"); } if (b_info->max_vcpus > 1) { @@ -1204,7 +1205,8 @@ static int libxl__build_device_model_args_new(libxl__gc *gc, if (b_info->u.hvm.soundhw) { flexarray_vappend(dm_args, "-soundhw", b_info->u.hvm.soundhw, NULL); } - if (!libxl_defbool_val(b_info->u.hvm.acpi)) { + if (!(libxl_defbool_val(b_info->acpi) && + libxl_defbool_val(b_info->u.hvm.acpi))) { flexarray_append(dm_args, "-no-acpi"); } if (b_info->max_vcpus > 1) { diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl index 98bfc3a..a02446f 100644 --- a/tools/libxl/libxl_types.idl +++ b/tools/libxl/libxl_types.idl @@ -494,11 +494,15 @@ libxl_domain_build_info = Struct("domain_build_info",[ # Note that the partial device tree should avoid to use the phandle # 65000 which is reserved by the toolstack. ("device_tree", string), + ("acpi", libxl_defbool), ("u", KeyedUnion(None, libxl_domain_type, "type", [("hvm", Struct(None, [("firmware", string), ("bios", libxl_bios_type), ("pae", libxl_defbool), ("apic", libxl_defbool), + # The following acpi field is deprecated. + # Please use the unified acpi field above + # which works for both x86 and ARM. ("acpi", libxl_defbool), ("acpi_s3", libxl_defbool), ("acpi_s4", libxl_defbool), diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index 1d06598..be17702 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -1547,6 +1547,7 @@ static void parse_config_data(const char *config_source, b_info->cmdline = parse_cmdline(config); xlu_cfg_get_defbool(config, "driver_domain", &c_info->driver_domain, 0); + xlu_cfg_get_defbool(config, "acpi", &b_info->acpi, 0); switch(b_info->type) { case LIBXL_DOMAIN_TYPE_HVM: @@ -1576,7 +1577,6 @@ static void parse_config_data(const char *config_source, xlu_cfg_get_defbool(config, "pae", &b_info->u.hvm.pae, 0); xlu_cfg_get_defbool(config, "apic", &b_info->u.hvm.apic, 0); - xlu_cfg_get_defbool(config, "acpi", &b_info->u.hvm.acpi, 0); xlu_cfg_get_defbool(config, "acpi_s3", &b_info->u.hvm.acpi_s3, 0); xlu_cfg_get_defbool(config, "acpi_s4", &b_info->u.hvm.acpi_s4, 0); xlu_cfg_get_defbool(config, "nx", &b_info->u.hvm.nx, 0);