From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mukesh Rathor Subject: [V16 PATCH 3/3] dom0: add opt_dom0pvh to setup.c Date: Wed, 28 May 2014 17:26:57 -0700 Message-ID: <1401323217-19965-4-git-send-email-mukesh.rathor@oracle.com> References: <1401323217-19965-1-git-send-email-mukesh.rathor@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WpoBv-0000Gr-2k for xen-devel@lists.xenproject.org; Thu, 29 May 2014 00:27:31 +0000 In-Reply-To: <1401323217-19965-1-git-send-email-mukesh.rathor@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: George.Dunlap@eu.citrix.com, keir.xen@gmail.com, tim@xen.org, JBeulich@suse.com List-Id: xen-devel@lists.xenproject.org Finally last patch in the series to enable creation of pvh dom0. A pvh dom0 is created by adding dom0pvh to grub xen command line. Signed-off-by: Mukesh Rathor Reviewed-by: Konrad Rzeszutek Wilk --- docs/misc/pvh-readme.txt | 2 ++ docs/misc/xen-command-line.markdown | 7 +++++++ xen/arch/x86/setup.c | 11 +++++++++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/docs/misc/pvh-readme.txt b/docs/misc/pvh-readme.txt index 9fea137..c5b3de4 100644 --- a/docs/misc/pvh-readme.txt +++ b/docs/misc/pvh-readme.txt @@ -37,6 +37,8 @@ supported. Phase I patches are broken into three parts: - tools changes for creating a PVH guest - boot of 64bit dom0 in PVH mode. +To boot 64bit dom0 in PVH mode, add dom0pvh to grub xen command line. + Following fixme's exist in the code: - arch/x86/time.c: support more tsc modes. diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown index a7ac53d..b45ba7e 100644 --- a/docs/misc/xen-command-line.markdown +++ b/docs/misc/xen-command-line.markdown @@ -494,6 +494,13 @@ Practices](http://wiki.xen.org/wiki/Xen_Best_Practices#Xen_dom0_dedicated_memory Pin dom0 vcpus to their respective pcpus +### dom0pvh +> `= ` + +> Default: `false` + +Flag that makes a 64bit dom0 boot in PVH mode. No 32bit support at present. + ### e820-mtrr-clip > `= ` diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index 508649d..d7df750 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -65,6 +65,10 @@ invbool_param("smep", disable_smep); static bool_t __initdata disable_smap; invbool_param("smap", disable_smap); +/* Boot dom0 in pvh mode */ +static bool_t __initdata opt_dom0pvh; +boolean_param("dom0pvh", opt_dom0pvh); + /* **** Linux config option: propagated to domain0. */ /* "acpi=off": Sisables both ACPI table parsing and interpreter. */ /* "acpi=force": Override the disable blacklist. */ @@ -539,7 +543,7 @@ void __init noreturn __start_xen(unsigned long mbi_p) { char *memmap_type = NULL; char *cmdline, *kextra, *loader; - unsigned int initrdidx; + unsigned int initrdidx, domcr_flags = DOMCRF_s3_integrity; multiboot_info_t *mbi = __va(mbi_p); module_t *mod = (module_t *)__va(mbi->mods_addr); unsigned long nr_pages, raw_max_page, modules_headroom, *module_map; @@ -1345,8 +1349,11 @@ void __init noreturn __start_xen(unsigned long mbi_p) if ( !tboot_protect_mem_regions() ) panic("Could not protect TXT memory regions"); + if ( opt_dom0pvh ) + domcr_flags |= DOMCRF_pvh | DOMCRF_hap; + /* Create initial domain 0. */ - dom0 = domain_create(0, DOMCRF_s3_integrity, 0); + dom0 = domain_create(0, domcr_flags, 0); if ( IS_ERR(dom0) || (alloc_dom0_vcpu0(dom0) == NULL) ) panic("Error creating domain 0"); -- 1.8.3.1