All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wei Liu <wei.liu2@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>,
	Ian Jackson <Ian.Jackson@eu.citrix.com>,
	Ian Campbell <Ian.Campbell@citrix.com>,
	Xen-devel <xen-devel@lists.xen.org>
Subject: Re: [PATCH] tools/libxc: Improve efficiency of xc_cpuid_apply_policy()
Date: Tue, 6 Oct 2015 10:14:57 +0100	[thread overview]
Message-ID: <20151006091457.GP29124@zion.uk.xensource.com> (raw)
In-Reply-To: <1444050737-8437-1-git-send-email-andrew.cooper3@citrix.com>

On Mon, Oct 05, 2015 at 02:12:17PM +0100, Andrew Cooper wrote:
> Having the internals of xc_cpuid_policy() make hypercalls to collect domain
> information causes xc_cpuid_apply_policy() to be very inefficient.
> 
> Re-order operations to collect all information at once at the outermost layer,
> and pass a structure in to all cpuid policy generation functions.
> 
> This removes several hypercalls (4 from HVM, 3 from PV) for each of the
> up-to 108 leaves processed.
> 
> No change in the eventual policy provided, although all the information
> gathering how has (or has correct) error checking.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Ian Campbell <Ian.Campbell@citrix.com>
> CC: Ian Jackson <Ian.Jackson@eu.citrix.com>
> CC: Wei Liu <wei.liu2@citrix.com>

Acked-by: Wei Liu <wei.liu2@citrix.com>

> ---
>  tools/libxc/xc_cpuid_x86.c |  245 +++++++++++++++++++++++++-------------------
>  1 file changed, 141 insertions(+), 104 deletions(-)
> 
> diff --git a/tools/libxc/xc_cpuid_x86.c b/tools/libxc/xc_cpuid_x86.c
> index e146a3e..715f30c 100644
> --- a/tools/libxc/xc_cpuid_x86.c
> +++ b/tools/libxc/xc_cpuid_x86.c
> @@ -33,6 +33,27 @@
>  #define DEF_MAX_INTELEXT  0x80000008u
>  #define DEF_MAX_AMDEXT    0x8000001cu
>  
> +struct cpuid_domain_info
> +{
> +    enum
> +    {
> +        VENDOR_UNKNOWN,
> +        VENDOR_INTEL,
> +        VENDOR_AMD,
> +    } vendor;
> +
> +    bool hvm;
> +    bool pvh;
> +    uint64_t xfeature_mask;
> +
> +    /* PV-only information. */
> +    bool pv64;
> +
> +    /* HVM-only infomation. */
> +    bool pae;
> +    bool nestedhvm;

I would have used union for these fields. But I don't want to bikeshed
too much on this. Definitely not a blocker for this patch. :-)

  reply	other threads:[~2015-10-06  9:14 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-05 13:12 [PATCH] tools/libxc: Improve efficiency of xc_cpuid_apply_policy() Andrew Cooper
2015-10-06  9:14 ` Wei Liu [this message]
2015-10-07 11:52   ` Ian Campbell
2015-10-07 11:54     ` Andrew Cooper

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=20151006091457.GP29124@zion.uk.xensource.com \
    --to=wei.liu2@citrix.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=andrew.cooper3@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.