From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: George Dunlap <george.dunlap@eu.citrix.com>
Cc: Ian Jackson <ian.jackson@citrix.com>,
Ian Campbell <ian.campbell@citrix.com>,
xen-devel@lists.xen.org
Subject: Re: [PATCH RFC v13 20/20] PVH xen tools: libxl changes to create a PVH guest.
Date: Fri, 27 Sep 2013 14:38:16 -0400 [thread overview]
Message-ID: <20130927183816.GE21364@phenom.dumpdata.com> (raw)
In-Reply-To: <1379955000-11050-21-git-send-email-george.dunlap@eu.citrix.com>
On Mon, Sep 23, 2013 at 05:50:00PM +0100, George Dunlap wrote:
> From: Mukesh Rathor <mukesh.rathor@oracle.com>
>
> Signed-off-by: Mukesh Rathor <mukesh.rathor@oracle.com>
> Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> ---
> v13 (gwd):
> - Added XEN_DOMCTL_CDF_pvh_guest flag
> CC: Ian Jackson <ian.jackson@citrix.com>
> CC: Ian Campbell <ian.campbell@citrix.com>
> ---
> docs/man/xl.cfg.pod.5 | 3 +++
> tools/libxl/libxl.h | 6 ++++++
> tools/libxl/libxl_create.c | 13 +++++++++++++
> tools/libxl/libxl_dom.c | 2 ++
> tools/libxl/libxl_internal.h | 1 +
> tools/libxl/libxl_types.idl | 1 +
> tools/libxl/libxl_x86.c | 4 +++-
> tools/libxl/xl_cmdimpl.c | 1 +
> 8 files changed, 30 insertions(+), 1 deletion(-)
>
> diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5
> index 769767b..69a4cc1 100644
> --- a/docs/man/xl.cfg.pod.5
> +++ b/docs/man/xl.cfg.pod.5
> @@ -634,6 +634,9 @@ if your particular guest kernel does not require this behaviour then
> it is safe to allow this to be enabled but you may wish to disable it
> anyway.
>
> +=item B<pvh=BOOLEAN>
> +Selects whether to run this PV guest in an HVM container. Default is 0.
> +
> =back
>
> =head2 Fully-virtualised (HVM) Guest Specific Options
> diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
> index 4cab294..2801da4 100644
> --- a/tools/libxl/libxl.h
> +++ b/tools/libxl/libxl.h
> @@ -355,6 +355,12 @@
> */
> #define LIBXL_HAVE_SPICE_VDAGENT 1
>
> +/*
> + * LIBXL_HAVE_CREATEINFO_PVH
> + * If this is defined, then libxl supports creation of a PVH guest.
> + */
> +#define LIBXL_HAVE_CREATEINFO_PVH 1
> +
> /* Functions annotated with LIBXL_EXTERNAL_CALLERS_ONLY may not be
> * called from within libxl itself. Callers outside libxl, who
> * do not #include libxl_internal.h, are fine. */
> diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
> index 7567238..a8e773a 100644
> --- a/tools/libxl/libxl_create.c
> +++ b/tools/libxl/libxl_create.c
> @@ -33,6 +33,9 @@ int libxl__domain_create_info_setdefault(libxl__gc *gc,
> if (c_info->type == LIBXL_DOMAIN_TYPE_HVM) {
> libxl_defbool_setdefault(&c_info->hap, true);
> libxl_defbool_setdefault(&c_info->oos, true);
> + } else {
> + libxl_defbool_setdefault(&c_info->pvh, false);
> + libxl_defbool_setdefault(&c_info->hap, libxl_defbool_val(c_info->pvh));
> }
>
> libxl_defbool_setdefault(&c_info->run_hotplug_scripts, true);
> @@ -349,6 +352,8 @@ int libxl__domain_build(libxl__gc *gc,
>
> break;
> case LIBXL_DOMAIN_TYPE_PV:
> + state->pvh_enabled = libxl_defbool_val(d_config->c_info.pvh);
> +
> ret = libxl__build_pv(gc, domid, info, state);
> if (ret)
> goto out;
> @@ -408,6 +413,14 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_create_info *info,
> flags |= XEN_DOMCTL_CDF_hvm_guest;
> flags |= libxl_defbool_val(info->hap) ? XEN_DOMCTL_CDF_hap : 0;
> flags |= libxl_defbool_val(info->oos) ? 0 : XEN_DOMCTL_CDF_oos_off;
> + } else if ( libxl_defbool_val(info->pvh) ) {
> + flags |= XEN_DOMCTL_CDF_pvh_guest;
> + if ( !libxl_defbool_val(info->hap) ) {
> + LOG(ERROR, "HAP must be on for PVH");
> + rc = ERROR_INVAL;
> + goto out;
> + }
> + flags |= XEN_DOMCTL_CDF_hap;
> }
> *domid = -1;
>
> diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c
> index 6e2252a..89e919e 100644
> --- a/tools/libxl/libxl_dom.c
> +++ b/tools/libxl/libxl_dom.c
> @@ -338,6 +338,8 @@ int libxl__build_pv(libxl__gc *gc, uint32_t domid,
> return ERROR_FAIL;
> }
>
> + dom->pvh_enabled = state->pvh_enabled;
> +
> LOG(DEBUG, "pv kernel mapped %d path %s\n", state->pv_kernel.mapped, state->pv_kernel.path);
> if (state->pv_kernel.mapped) {
> ret = xc_dom_kernel_mem(dom,
> diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
> index f051d91..441ec66 100644
> --- a/tools/libxl/libxl_internal.h
> +++ b/tools/libxl/libxl_internal.h
> @@ -886,6 +886,7 @@ typedef struct {
> libxl__file_reference pv_kernel;
> libxl__file_reference pv_ramdisk;
> const char * pv_cmdline;
> + bool pvh_enabled;
> } libxl__domain_build_state;
>
> _hidden int libxl__build_pre(libxl__gc *gc, uint32_t domid,
> diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
> index 049dbb5..e83b70d 100644
> --- a/tools/libxl/libxl_types.idl
> +++ b/tools/libxl/libxl_types.idl
> @@ -257,6 +257,7 @@ libxl_domain_create_info = Struct("domain_create_info",[
> ("platformdata", libxl_key_value_list),
> ("poolid", uint32),
> ("run_hotplug_scripts",libxl_defbool),
> + ("pvh", libxl_defbool),
> ], dir=DIR_IN)
>
> MemKB = UInt(64, init_val = "LIBXL_MEMKB_DEFAULT")
> diff --git a/tools/libxl/libxl_x86.c b/tools/libxl/libxl_x86.c
> index a78c91d..87a8110 100644
> --- a/tools/libxl/libxl_x86.c
> +++ b/tools/libxl/libxl_x86.c
> @@ -290,7 +290,9 @@ int libxl__arch_domain_create(libxl__gc *gc, libxl_domain_config *d_config,
> if (rtc_timeoffset)
> xc_domain_set_time_offset(ctx->xch, domid, rtc_timeoffset);
>
> - if (d_config->b_info.type == LIBXL_DOMAIN_TYPE_HVM) {
> + if (d_config->b_info.type == LIBXL_DOMAIN_TYPE_HVM ||
> + libxl_defbool_val(d_config->c_info.pvh)) {
> +
> unsigned long shadow;
> shadow = (d_config->b_info.shadow_memkb + 1023) / 1024;
> xc_shadow_control(ctx->xch, domid, XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION, NULL, 0, &shadow, 0, NULL);
> diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
> index 3d7eaad..7f36423 100644
> --- a/tools/libxl/xl_cmdimpl.c
> +++ b/tools/libxl/xl_cmdimpl.c
> @@ -610,6 +610,7 @@ static void parse_config_data(const char *config_source,
> !strncmp(buf, "hvm", strlen(buf)))
> c_info->type = LIBXL_DOMAIN_TYPE_HVM;
>
> + xlu_cfg_get_defbool(config, "pvh", &c_info->pvh, 0);
> xlu_cfg_get_defbool(config, "hap", &c_info->hap, 0);
>
> if (xlu_cfg_replace_string (config, "name", &c_info->name, 0)) {
> --
> 1.7.9.5
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2013-09-27 18:38 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-23 16:49 [PATCH RFC v13 00/20] Introduce PVH domU support George Dunlap
2013-09-23 16:49 ` [PATCH RFC v13 01/20] Allow vmx_update_debug_state to be called when v!=current George Dunlap
2013-09-23 16:49 ` [PATCH RFC v13 02/20] pvh prep: code motion George Dunlap
2013-09-26 9:20 ` Tim Deegan
2013-10-04 15:29 ` Roger Pau Monné
2013-09-23 16:49 ` [PATCH RFC v13 03/20] Introduce pv guest type and has_hvm_container macros George Dunlap
2013-09-26 11:53 ` Tim Deegan
2013-09-26 12:54 ` Ian Campbell
2013-09-26 13:46 ` George Dunlap
2013-09-26 15:31 ` Konrad Rzeszutek Wilk
2013-09-26 16:24 ` Tim Deegan
2013-09-23 16:49 ` [PATCH RFC v13 04/20] pvh: Introduce PVH guest type George Dunlap
2013-09-23 16:49 ` [PATCH RFC v13 05/20] pvh: Disable unneeded features of HVM containers George Dunlap
2013-09-26 15:22 ` Jan Beulich
2013-11-04 12:31 ` George Dunlap
2013-09-23 16:49 ` [PATCH RFC v13 06/20] pvh: vmx-specific changes George Dunlap
2013-09-26 15:29 ` Jan Beulich
2013-11-07 14:14 ` George Dunlap
2013-11-07 14:29 ` Jan Beulich
2013-10-07 15:55 ` Roger Pau Monné
2013-10-07 16:06 ` George Dunlap
2013-10-07 16:12 ` Tim Deegan
2013-10-07 16:20 ` George Dunlap
2013-10-07 17:08 ` Tim Deegan
2013-10-08 8:45 ` Jan Beulich
2013-11-07 12:02 ` George Dunlap
2013-11-07 13:12 ` Jan Beulich
2013-09-23 16:49 ` [PATCH RFC v13 07/20] pvh: Do not allow PVH guests to change paging modes George Dunlap
2013-09-26 15:30 ` Jan Beulich
2013-09-23 16:49 ` [PATCH RFC v13 08/20] pvh: PVH access to hypercalls George Dunlap
2013-09-26 15:33 ` Jan Beulich
2013-09-27 21:15 ` Mukesh Rathor
2013-09-30 6:38 ` Jan Beulich
2013-09-23 16:49 ` [PATCH RFC v13 09/20] pvh: Use PV e820 George Dunlap
2013-09-27 17:57 ` Konrad Rzeszutek Wilk
2013-09-23 16:49 ` [PATCH RFC v13 10/20] pvh: Support guest_kernel_mode for PVH George Dunlap
2013-09-23 16:49 ` [PATCH RFC v13 11/20] pvh: Support read_segment_register " George Dunlap
2013-09-26 15:36 ` Jan Beulich
2013-09-23 16:49 ` [PATCH RFC v13 12/20] pvh: read_descriptor for PVH guests George Dunlap
2013-09-27 18:34 ` Konrad Rzeszutek Wilk
2013-09-23 16:49 ` [PATCH RFC v13 13/20] pvh: Set up more PV stuff in set_info_guest George Dunlap
2013-09-26 15:43 ` Jan Beulich
2013-11-07 15:57 ` George Dunlap
2013-09-23 16:49 ` [PATCH RFC v13 14/20] pvh: Use PV handlers for emulated forced invalid ops, cpuid, and IO George Dunlap
2013-09-26 15:52 ` Jan Beulich
2013-09-23 16:49 ` [PATCH RFC v13 15/20] pvh: Disable 32-bit guest support for now George Dunlap
2013-09-23 16:49 ` [PATCH RFC v13 16/20] pvh: Restrict tsc_mode to NEVER_EMULATE " George Dunlap
2013-09-23 16:49 ` [PATCH RFC v13 17/20] pvh: Disable debug traps when doing pv emulation for PVH domains George Dunlap
2013-09-26 15:55 ` Jan Beulich
2013-09-23 16:49 ` [PATCH RFC v13 18/20] pvh: Documentation George Dunlap
2013-09-23 16:49 ` [PATCH RFC v13 19/20] PVH xen tools: libxc changes to build a PVH guest George Dunlap
2013-09-27 18:37 ` Konrad Rzeszutek Wilk
2013-10-18 16:45 ` Roger Pau Monné
2013-11-04 11:56 ` George Dunlap
2013-11-04 13:18 ` Roger Pau Monné
2013-09-23 16:50 ` [PATCH RFC v13 20/20] PVH xen tools: libxl changes to create " George Dunlap
2013-09-27 18:38 ` Konrad Rzeszutek Wilk [this message]
2013-09-27 13:08 ` [PATCH RFC v13 00/20] Introduce PVH domU support Konrad Rzeszutek Wilk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130927183816.GE21364@phenom.dumpdata.com \
--to=konrad.wilk@oracle.com \
--cc=george.dunlap@eu.citrix.com \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.