From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>,
Ian Campbell <ian.campbell@citrix.com>
Subject: Re: [PATCH] libxc: expand cpuid features exposed to PVH guests
Date: Wed, 23 Jul 2014 15:22:24 +0100 [thread overview]
Message-ID: <53CFC520.2040600@citrix.com> (raw)
In-Reply-To: <1406124757-3925-1-git-send-email-roger.pau@citrix.com>
On 23/07/14 15:12, Roger Pau Monne wrote:
> Expand the cpuid features exposed to PVH guests, this includes
> exposing PSE, PGE and 1GB pages (which will be masked by the
> hypervisor if not supported by the hardware).
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>
> Cc: Ian Campbell <ian.campbell@citrix.com>
> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> tools/libxc/xc_cpuid_x86.c | 13 ++++++++-----
> tools/libxc/xc_domain.c | 1 +
> tools/libxc/xenctrl.h | 2 +-
> 3 files changed, 10 insertions(+), 6 deletions(-)
>
> diff --git a/tools/libxc/xc_cpuid_x86.c b/tools/libxc/xc_cpuid_x86.c
> index 8acb9fb..c7208fc 100644
> --- a/tools/libxc/xc_cpuid_x86.c
> +++ b/tools/libxc/xc_cpuid_x86.c
> @@ -437,7 +437,7 @@ static void xc_cpuid_hvm_policy(
>
> static void xc_cpuid_pv_policy(
> xc_interface *xch, domid_t domid,
> - const unsigned int *input, unsigned int *regs)
> + const unsigned int *input, unsigned int *regs, unsigned int autotranslated)
bool autotranslated, but I would suggest 'pvh' as a name as PV
autotranslated is an already existing thing.
Other than that, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> {
> DECLARE_DOMCTL;
> unsigned int guest_width;
> @@ -460,8 +460,10 @@ static void xc_cpuid_pv_policy(
> if ( (input[0] & 0x7fffffff) == 0x00000001 )
> {
> clear_bit(X86_FEATURE_VME, regs[3]);
> - clear_bit(X86_FEATURE_PSE, regs[3]);
> - clear_bit(X86_FEATURE_PGE, regs[3]);
> + if ( !autotranslated ) {
> + clear_bit(X86_FEATURE_PSE, regs[3]);
> + clear_bit(X86_FEATURE_PGE, regs[3]);
> + }
> clear_bit(X86_FEATURE_MCE, regs[3]);
> clear_bit(X86_FEATURE_MCA, regs[3]);
> clear_bit(X86_FEATURE_MTRR, regs[3]);
> @@ -530,7 +532,8 @@ static void xc_cpuid_pv_policy(
> {
> set_bit(X86_FEATURE_SYSCALL, regs[3]);
> }
> - clear_bit(X86_FEATURE_PAGE1GB, regs[3]);
> + if ( !autotranslated )
> + clear_bit(X86_FEATURE_PAGE1GB, regs[3]);
> clear_bit(X86_FEATURE_RDTSCP, regs[3]);
>
> clear_bit(X86_FEATURE_SVM, regs[2]);
> @@ -578,7 +581,7 @@ static int xc_cpuid_policy(
> if ( info.hvm )
> xc_cpuid_hvm_policy(xch, domid, input, regs);
> else
> - xc_cpuid_pv_policy(xch, domid, input, regs);
> + xc_cpuid_pv_policy(xch, domid, input, regs, info.pvh);
>
> return 0;
> }
> diff --git a/tools/libxc/xc_domain.c b/tools/libxc/xc_domain.c
> index 0230c6c..c67ac9a 100644
> --- a/tools/libxc/xc_domain.c
> +++ b/tools/libxc/xc_domain.c
> @@ -348,6 +348,7 @@ int xc_domain_getinfo(xc_interface *xch,
> info->running = !!(domctl.u.getdomaininfo.flags&XEN_DOMINF_running);
> info->hvm = !!(domctl.u.getdomaininfo.flags&XEN_DOMINF_hvm_guest);
> info->debugged = !!(domctl.u.getdomaininfo.flags&XEN_DOMINF_debugged);
> + info->pvh = !!(domctl.u.getdomaininfo.flags&XEN_DOMINF_pvh_guest);
>
> info->shutdown_reason =
> (domctl.u.getdomaininfo.flags>>XEN_DOMINF_shutdownshift) &
> diff --git a/tools/libxc/xenctrl.h b/tools/libxc/xenctrl.h
> index 3578b09..8b55fba 100644
> --- a/tools/libxc/xenctrl.h
> +++ b/tools/libxc/xenctrl.h
> @@ -422,7 +422,7 @@ typedef struct xc_dominfo {
> uint32_t ssidref;
> unsigned int dying:1, crashed:1, shutdown:1,
> paused:1, blocked:1, running:1,
> - hvm:1, debugged:1;
> + hvm:1, debugged:1, pvh:1;
> unsigned int shutdown_reason; /* only meaningful if shutdown==1 */
> unsigned long nr_pages; /* current number, not maximum */
> unsigned long nr_outstanding_pages;
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2014-07-23 14:22 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-23 14:12 [PATCH] libxc: expand cpuid features exposed to PVH guests Roger Pau Monne
2014-07-23 14:22 ` Andrew Cooper [this message]
2014-07-28 14:19 ` David Vrabel
2014-07-28 17:39 ` Roger Pau Monné
2014-07-29 14:15 ` George Dunlap
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=53CFC520.2040600@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=ian.campbell@citrix.com \
--cc=roger.pau@citrix.com \
--cc=xen-devel@lists.xenproject.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.