From patchwork Mon Mar 27 13:11:39 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Wei Liu X-Patchwork-Id: 9646627 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 3856A601D7 for ; Mon, 27 Mar 2017 13:13:55 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 258D027E5A for ; Mon, 27 Mar 2017 13:13:55 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1A6BB2836D; Mon, 27 Mar 2017 13:13:55 +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 7228127E5A for ; Mon, 27 Mar 2017 13:13:54 +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 1csUQz-00040T-NV; Mon, 27 Mar 2017 13:11:45 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1csUQy-00040I-4G for xen-devel@lists.xenproject.org; Mon, 27 Mar 2017 13:11:44 +0000 Received: from [193.109.254.147] by server-7.bemta-6.messagelabs.com id 38/0A-04817-F8F09D85; Mon, 27 Mar 2017 13:11:43 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprDIsWRWlGSWpSXmKPExsXitHRDpG4f/80 IgzXbTSy+b5nM5MDocfjDFZYAxijWzLyk/IoE1oxbRywKJktVzJzextrAeES0i5GTQ0LAX2Ll oR52EJtNQFniZ2cvG4gtIqAn0XTgOWMXIxcHs8AXRonP21uZQBLCAtYS89eeAytiEVCV+PHgP EsXIwcHr4C5xMu7pRAz5SV2tV1kBbF5BQQlTs58wgJiMwtoSrRu/80OYctLNG+dzQxiCwkoSH RMP8Y0gZFnFpKWWUhaZiFpWcDIvIpRozi1qCy1SNfYSC+pKDM9oyQ3MTNH19DATC83tbg4MT0 1JzGpWC85P3cTIzB0GIBgB+PpdYGHGCU5mJREeT+cvhEhxJeUn1KZkVicEV9UmpNafIhRg4ND YPPa1RcYpVjy8vNSlSR4Y/luRggJFqWmp1akZeYAgxumVIKDR0mE9xhImre4IDG3ODMdInWKU ZfjVsOeN0xCYDOkxHlngxQJgBRllObBjYBF2iVGWSlhXkagA4V4ClKLcjNLUOVfMYpzMCoJ88 4CmcKTmVcCt+kV0BFMQEccnn8D5IiSRISUVAPjyoQtofozVybMv2Kx5Dr3pX4tEcOYfxM5N3V vP+fTJfe04gTbOruuuZ9ebeyzfnz+yMqJ6SdVq6WN2H3udi/9775I4wKDcWdIc96BpSUR7PyO B1m9n1/TP6kibefU9WuiTJvqga6N2dlPGwonrL+kdOWayq4znHEaD1LE8hlunMxaby64tslbi aU4I9FQi7moOBEAt2uS2q8CAAA= X-Env-Sender: prvs=25272e2f3=wei.liu2@citrix.com X-Msg-Ref: server-2.tower-27.messagelabs.com!1490620301!41433678!1 X-Originating-IP: [66.165.176.89] X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n, received_headers: No Received headers X-StarScan-Received: X-StarScan-Version: 9.2.3; banners=-,-,- X-VirusChecked: Checked Received: (qmail 52605 invoked from network); 27 Mar 2017 13:11:42 -0000 Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89) by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP; 27 Mar 2017 13:11:42 -0000 X-IronPort-AV: E=Sophos;i="5.36,231,1486425600"; d="scan'208";a="416058580" From: Wei Liu To: Xen-devel Date: Mon, 27 Mar 2017 14:11:39 +0100 Message-ID: <20170327131139.8733-1-wei.liu2@citrix.com> X-Mailer: git-send-email 2.11.0 MIME-Version: 1.0 Cc: Wei Liu , George Dunlap , Andrew Cooper , Tim Deegan , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Subject: [Xen-devel] [PATCH v2] x86: clarify shadow paging Dom0 support 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 Classic PV shadow paging Dom0 has been broken for years, and can't possibly be configured after 4045953. PVH shadow paging Dom0 should still be possible. Change the code and documentation to clarify that. Signed-off-by: Wei Liu --- v2: 1. simplify need_paging 2. move panic to construct_dom0 Cc: Jan Beulich Cc: Andrew Cooper Cc: Tim Deegan Cc: George Dunlap Cc: Roger Pau Monné --- docs/misc/xen-command-line.markdown | 8 ++------ xen/arch/x86/dom0_build.c | 8 +++++--- xen/arch/x86/pv/dom0_build.c | 5 ----- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown index bdbdb8a53b..9eb85d68b5 100644 --- a/docs/misc/xen-command-line.markdown +++ b/docs/misc/xen-command-line.markdown @@ -652,11 +652,6 @@ restrictions set up here. Note that the values to be specified here are ACPI PXM ones, not Xen internal node numbers. `relaxed` sets up vCPU affinities to prefer but be not limited to the specified node(s). -### dom0\_shadow -> `= ` - -This option is deprecated, please use `dom0=shadow` instead. - ### dom0\_vcpus\_pin > `= ` @@ -679,7 +674,8 @@ Flag that makes a dom0 boot in PVHv2 mode. > Default: `false` -Flag that makes a dom0 use shadow paging. +Flag that makes a dom0 use shadow paging. Only works when "pvh" is +enabled. ### dtuart (ARM) > `= path [:options]` diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c index 20221b5e32..8074e7d200 100644 --- a/xen/arch/x86/dom0_build.c +++ b/xen/arch/x86/dom0_build.c @@ -174,7 +174,6 @@ struct vcpu *__init alloc_dom0_vcpu0(struct domain *dom0) #ifdef CONFIG_SHADOW_PAGING bool __initdata opt_dom0_shadow; -boolean_param("dom0_shadow", opt_dom0_shadow); #endif bool __initdata dom0_pvh; @@ -252,8 +251,8 @@ unsigned long __init dom0_compute_nr_pages( avail -= max_pdx >> s; } - need_paging = is_hvm_domain(d) ? !iommu_hap_pt_share || !paging_mode_hap(d) - : opt_dom0_shadow; + need_paging = is_hvm_domain(d) && + (!iommu_hap_pt_share || !paging_mode_hap(d)); for ( ; ; need_paging = 0 ) { nr_pages = dom0_nrpages; @@ -456,6 +455,9 @@ int __init construct_dom0(struct domain *d, const module_t *image, process_pending_softirqs(); + if ( opt_dom0_shadow && !dom0_pvh ) + panic("Shadow paging Dom0 only works in PVH mode"); + return (is_hvm_domain(d) ? dom0_construct_pvh : dom0_construct_pv) (d, image, image_headroom, initrd,bootstrap_map, cmdline); } diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c index 65cd2c5019..18c19a256f 100644 --- a/xen/arch/x86/pv/dom0_build.c +++ b/xen/arch/x86/pv/dom0_build.c @@ -870,11 +870,6 @@ int __init dom0_construct_pv(struct domain *d, regs->rsi = vstartinfo_start; regs->eflags = X86_EFLAGS_IF; -#ifdef CONFIG_SHADOW_PAGING - if ( opt_dom0_shadow && paging_enable(d, PG_SH_enable) == 0 ) - paging_update_paging_modes(v); -#endif - if ( test_bit(XENFEAT_supervisor_mode_kernel, parms.f_required) ) panic("Dom0 requires supervisor-mode execution");