From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48528) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VozJR-000288-Lt for qemu-devel@nongnu.org; Fri, 06 Dec 2013 12:35:42 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VozJM-0005r9-Lc for qemu-devel@nongnu.org; Fri, 06 Dec 2013 12:35:37 -0500 Received: from mx1.redhat.com ([209.132.183.28]:14692) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VozJM-0005r1-Cm for qemu-devel@nongnu.org; Fri, 06 Dec 2013 12:35:32 -0500 Message-ID: <52A20AD6.8080706@redhat.com> Date: Fri, 06 Dec 2013 18:35:18 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1386375658-2191-1-git-send-email-qiaowei.ren@intel.com> <1386375658-2191-3-git-send-email-qiaowei.ren@intel.com> In-Reply-To: <1386375658-2191-3-git-send-email-qiaowei.ren@intel.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 3/3] X86, mpx: Intel MPX xstate feature definition List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Qiaowei Ren Cc: Liu Jinsong , kvm@vger.kernel.org, x86@kernel.org, Xudong Hao , qemu-devel@nongnu.org, linux-kernel@vger.kernel.org, Ingo Molnar , "H. Peter Anvin" , Thomas Gleixner 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 > Signed-off-by: Xudong Hao > Signed-off-by: Liu Jinsong > --- > 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, " >