From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [V9 PATCH 8/8] pvh dom0: add opt_dom0pvh to setup.c Date: Wed, 16 Apr 2014 14:01:45 +0100 Message-ID: <534E7F39.8070902@citrix.com> References: <1397607172-32065-1-git-send-email-mukesh.rathor@oracle.com> <1397607172-32065-9-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.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WaPTL-0002zT-8Q for xen-devel@lists.xenproject.org; Wed, 16 Apr 2014 13:01:51 +0000 In-Reply-To: <1397607172-32065-9-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: Mukesh Rathor Cc: George.Dunlap@eu.citrix.com, xen-devel@lists.xenproject.org, keir.xen@gmail.com, tim@xen.org, JBeulich@suse.com List-Id: xen-devel@lists.xenproject.org On 16/04/14 01:12, Mukesh Rathor wrote: > A pvh dom0 is booted by adding dom0pvh to grub xen command line. > > Signed-off-by: Mukesh Rathor > --- > docs/misc/pvh-readme.txt | 2 ++ > xen/arch/x86/setup.c | 12 +++++++++--- > 2 files changed, 11 insertions(+), 3 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/xen/arch/x86/setup.c b/xen/arch/x86/setup.c > index e9c2c51..bd35f65 100644 > --- a/xen/arch/x86/setup.c > +++ b/xen/arch/x86/setup.c > @@ -61,6 +61,10 @@ integer_param("maxcpus", max_cpus); > static bool_t __initdata disable_smep; > invbool_param("smep", disable_smep); > > +/* 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. */ > @@ -541,7 +545,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 = 0; > 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; > @@ -1337,8 +1341,10 @@ void __init noreturn __start_xen(unsigned long mbi_p) > if ( !tboot_protect_mem_regions() ) > panic("Could not protect TXT memory regions"); > > - /* Create initial domain 0. */ > - dom0 = domain_create(0, DOMCRF_s3_integrity, 0); > + /* Create initial domain 0. */ > + domcr_flags = (opt_dom0pvh ? DOMCRF_pvh | DOMCRF_hap : 0); > + domcr_flags |= DOMCRF_s3_integrity; > + dom0 = domain_create(0, domcr_flags, 0); tabs vs spaces? ~Andrew > if ( IS_ERR(dom0) || (alloc_dom0_vcpu0() == NULL) ) > panic("Error creating domain 0"); >