From: George Dunlap <george.dunlap@citrix.com>
To: Huaitong Han <huaitong.han@intel.com>,
jbeulich@suse.com, andrew.cooper3@citrix.com,
jun.nakajima@intel.com, eddie.dong@intel.com,
kevin.tian@intel.com, george.dunlap@eu.citrix.com,
ian.jackson@eu.citrix.com, stefano.stabellini@eu.citrix.com,
ian.campbell@citrix.com, wei.liu2@citrix.com, keir@xen.org
Cc: xen-devel@lists.xen.org
Subject: Re: [V3 PATCH 6/9] x86/hvm: pkeys, add xstate support for pkeys
Date: Thu, 10 Dec 2015 17:39:53 +0000 [thread overview]
Message-ID: <5669B8E9.2040807@citrix.com> (raw)
In-Reply-To: <1449479780-19146-7-git-send-email-huaitong.han@intel.com>
On 07/12/15 09:16, Huaitong Han wrote:
> This patch adds xstate support for pkeys.
Hey Huaitong,
Hope you don't mind me giving you a little feedback on the way you've
broken down your patches here. The purpose for breaking a change down
into separate patches like this is to make it easier for people
reviewing (and for people later who come and look at the commits) to
figure out what's going on. But if you break the patch series down to
much, you go back to making things harder again.
Take this patch, for instance. You're making get_xsave_addr() global
(non-static), and also making it handle the case where the xsave area
was compressed (which it didn't before).
But as a reviewer, I don't know at this point who is calling
get_xsave_addr() or why; I don't know if this change is necessary, or if
it is correct for all the callers (or if the change wrt compressed xsave
areas is even necessary).
So one problem with this patch is that you don't include that
information in the description. But part of it is that the change
doesn't really make much sense by itself.
I think I'd squash patches 4-7 into a single patch.
More comments about the approach in patch 7.
-George
>
> Signed-off-by: Huaitong Han <huaitong.han@intel.com>
> ---
> xen/arch/x86/xstate.c | 7 +++++--
> xen/include/asm-x86/xstate.h | 4 +++-
> 2 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
> index b65da38..db978c4 100644
> --- a/xen/arch/x86/xstate.c
> +++ b/xen/arch/x86/xstate.c
> @@ -146,12 +146,15 @@ static void __init setup_xstate_comp(void)
> }
> }
>
> -static void *get_xsave_addr(void *xsave, unsigned int xfeature_idx)
> +void *get_xsave_addr(void *xsave, unsigned int xfeature_idx)
> {
> if ( !((1ul << xfeature_idx) & xfeature_mask) )
> return NULL;
>
> - return xsave + xstate_comp_offsets[xfeature_idx];
> + if ( xsave_area_compressed(xsave) )
> + return xsave + xstate_comp_offsets[xfeature_idx];
> + else
> + return xsave + xstate_offsets[xfeature_idx];
> }
>
> void expand_xsave_states(struct vcpu *v, void *dest, unsigned int size)
> diff --git a/xen/include/asm-x86/xstate.h b/xen/include/asm-x86/xstate.h
> index 12d939b..6536813 100644
> --- a/xen/include/asm-x86/xstate.h
> +++ b/xen/include/asm-x86/xstate.h
> @@ -34,13 +34,14 @@
> #define XSTATE_OPMASK (1ULL << 5)
> #define XSTATE_ZMM (1ULL << 6)
> #define XSTATE_HI_ZMM (1ULL << 7)
> +#define XSTATE_PKRU (1ULL << 9)
> #define XSTATE_LWP (1ULL << 62) /* AMD lightweight profiling */
> #define XSTATE_FP_SSE (XSTATE_FP | XSTATE_SSE)
> #define XCNTXT_MASK (XSTATE_FP | XSTATE_SSE | XSTATE_YMM | XSTATE_OPMASK | \
> XSTATE_ZMM | XSTATE_HI_ZMM | XSTATE_NONLAZY)
>
> #define XSTATE_ALL (~(1ULL << 63))
> -#define XSTATE_NONLAZY (XSTATE_LWP | XSTATE_BNDREGS | XSTATE_BNDCSR)
> +#define XSTATE_NONLAZY (XSTATE_LWP | XSTATE_BNDREGS | XSTATE_BNDCSR | XSTATE_PKRU)
> #define XSTATE_LAZY (XSTATE_ALL & ~XSTATE_NONLAZY)
> #define XSTATE_COMPACTION_ENABLED (1ULL << 63)
>
> @@ -90,6 +91,7 @@ uint64_t get_msr_xss(void);
> void xsave(struct vcpu *v, uint64_t mask);
> void xrstor(struct vcpu *v, uint64_t mask);
> bool_t xsave_enabled(const struct vcpu *v);
> +void *get_xsave_addr(void *xsave, unsigned int xfeature_idx);
> int __must_check validate_xstate(u64 xcr0, u64 xcr0_accum, u64 xstate_bv);
> int __must_check handle_xsetbv(u32 index, u64 new_bv);
> void expand_xsave_states(struct vcpu *v, void *dest, unsigned int size);
>
next prev parent reply other threads:[~2015-12-10 17:39 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-07 9:16 [V3 PATCH 0/9] x86/hvm: pkeys, add memory protection-key support Huaitong Han
2015-12-07 9:16 ` [V3 PATCH 1/9] x86/hvm: pkeys, add the flag to enable Memory Protection Keys Huaitong Han
2015-12-10 15:37 ` George Dunlap
2015-12-07 9:16 ` [V3 PATCH 2/9] x86/hvm: pkeys, add pkeys support when setting CR4 Huaitong Han
2015-12-07 9:16 ` [V3 PATCH 3/9] x86/hvm: pkeys, disable pkeys for guests in non-paging mode Huaitong Han
2015-12-07 9:16 ` [V3 PATCH 4/9] x86/hvm: pkeys, add functions to get pkeys value from PTE Huaitong Han
2015-12-10 15:48 ` George Dunlap
2015-12-10 18:47 ` Andrew Cooper
2015-12-07 9:16 ` [V3 PATCH 5/9] x86/hvm: pkeys, add functions to support PKRU access Huaitong Han
2015-12-10 18:48 ` Andrew Cooper
2015-12-07 9:16 ` [V3 PATCH 6/9] x86/hvm: pkeys, add xstate support for pkeys Huaitong Han
2015-12-10 17:39 ` George Dunlap [this message]
2015-12-10 18:57 ` Andrew Cooper
2015-12-11 9:36 ` Jan Beulich
2015-12-07 9:16 ` [V3 PATCH 7/9] x86/hvm: pkeys, add pkeys support for guest_walk_tables Huaitong Han
2015-12-10 18:19 ` George Dunlap
2015-12-11 9:16 ` Wu, Feng
2015-12-11 9:23 ` Jan Beulich
2015-12-16 15:36 ` George Dunlap
2015-12-16 16:28 ` Tim Deegan
2015-12-16 16:34 ` Andrew Cooper
2015-12-16 17:33 ` Tim Deegan
2015-12-16 16:50 ` George Dunlap
2015-12-16 17:21 ` Tim Deegan
2015-12-18 8:21 ` Han, Huaitong
2015-12-18 10:03 ` George Dunlap
2015-12-18 11:46 ` Tim Deegan
2015-12-11 9:23 ` Han, Huaitong
2015-12-11 9:50 ` Jan Beulich
2015-12-11 9:26 ` Jan Beulich
2015-12-15 8:14 ` Han, Huaitong
2015-12-15 9:02 ` Jan Beulich
2015-12-16 8:16 ` Han, Huaitong
2015-12-16 8:32 ` Jan Beulich
2015-12-16 9:03 ` Han, Huaitong
2015-12-16 9:12 ` Jan Beulich
2015-12-17 9:18 ` Han, Huaitong
2015-12-17 10:05 ` Jan Beulich
2015-12-10 18:59 ` Andrew Cooper
2015-12-11 7:18 ` Han, Huaitong
2015-12-11 8:48 ` Andrew Cooper
2015-12-07 9:16 ` [V3 PATCH 8/9] x86/hvm: pkeys, add pkeys support for gva2gfn funcitons Huaitong Han
2015-12-07 9:16 ` [V3 PATCH 9/9] x86/hvm: pkeys, add pkeys support for cpuid handling Huaitong Han
2015-12-11 9:47 ` Jan Beulich
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=5669B8E9.2040807@citrix.com \
--to=george.dunlap@citrix.com \
--cc=andrew.cooper3@citrix.com \
--cc=eddie.dong@intel.com \
--cc=george.dunlap@eu.citrix.com \
--cc=huaitong.han@intel.com \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=jbeulich@suse.com \
--cc=jun.nakajima@intel.com \
--cc=keir@xen.org \
--cc=kevin.tian@intel.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=wei.liu2@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).