Re: [PATCH v2 3/3] X86, mpx: Intel MPX xstate feature definition

From: Paolo Bonzini
Date: Fri Dec 06 2013 - 12:35:37 EST


Il 07/12/2013 01:20, Qiaowei Ren ha scritto:
> This patch defines xstate feature and extends struct xsave_hdr_struct
> to support Intel MPX.
>
> Signed-off-by: Qiaowei Ren <qiaowei.ren@xxxxxxxxx>
> Signed-off-by: Xudong Hao <xudong.hao@xxxxxxxxx>
> Signed-off-by: Liu Jinsong <jinsong.liu@xxxxxxxxx>
> ---
> arch/x86/include/asm/processor.h | 12 ++++++++++++
> arch/x86/include/asm/xsave.h | 5 ++++-
> 2 files changed, 16 insertions(+), 1 deletions(-)
>
> diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
> index 987c75e..2fe2e75 100644
> --- a/arch/x86/include/asm/processor.h
> +++ b/arch/x86/include/asm/processor.h
> @@ -370,6 +370,15 @@ struct ymmh_struct {
> u32 ymmh_space[64];
> };
>
> +struct bndregs_struct {
> + u64 bndregs[8];
> +} __packed;
> +
> +struct bndcsr_struct {
> + u64 cfg_reg_u;
> + u64 status_reg;
> +} __packed;
> +
> struct xsave_hdr_struct {
> u64 xstate_bv;
> u64 reserved1[2];
> @@ -380,6 +389,9 @@ struct xsave_struct {
> struct i387_fxsave_struct i387;
> struct xsave_hdr_struct xsave_hdr;
> struct ymmh_struct ymmh;
> + u8 lwp_area[128];

Sorry for the back-and-forth, but I think this and the removal of
XSTATE_FLEXIBLE (perhaps XSTATE_LAZY?) makes your v2 worse than v1.

Since Peter already said the same, please undo these changes.

Also, how is XSTATE_EAGER used? Should MPX be disabled when xsaveopt is
disabled on the kernel command line? (Liu, how would this affect the
KVM patches, too?)

Paolo

> +#define XSTATE_EAGER (XSTATE_BNDREGS | XSTATE_BNDCSR)
> /*
> * These are the features that the OS can handle currently.
> */
> -#define XCNTXT_MASK (XSTATE_FP | XSTATE_SSE | XSTATE_YMM)
> +#define XCNTXT_MASK (XSTATE_FP | XSTATE_SSE | XSTATE_YMM | XSTATE_EAGER)
>
> #ifdef CONFIG_X86_64
> #define REX_PREFIX "0x48, "
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/