[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [V4] x86/xsaves: fix overwriting between non-lazy/lazy xsaves
>>> On 16.03.16 at 10:35, <shuai.ruan@xxxxxxxxxxxxxxx> wrote: > On Tue, Mar 15, 2016 at 07:33:40AM -0600, Jan Beulich wrote: >> >>> On 15.03.16 at 10:40, <shuai.ruan@xxxxxxxxxxxxxxx> wrote: >> > xrstor() will look as follow: >> > if ( using_xsaves ) >> > { >> > if ( unlikely(!(prt->xsave_hdr->xcom_bv & >> > XSTATE_COMPACTION_ENABLED)) ) >> > ptr->xsave_hdr->xcomp_bv = >> > ptr->xsave_hdr->xstate_bv | >> > XSTATE_COMPACTION_ENABLED; >> > XRSTORS; >> > } >> > else >> > XRSTOR; >> >> This makes me imply that "using_xsaves" is still a global variable, >> set depending on CPU features. That's exactly what I've said >> would presumably not be sufficient in code like xrstor(). What >> point is there in using XSTORS if the guest never touched XSS? >> I would much rather have expected for you to introduce a >> flag paralleling v->arch.nonlazy_xstate_used indicating >> whether for a particular vCPU XSAVES/XRSTORS really need to be >> used (or maybe just looking at xcr0_accum would be sufficient, >> and no new flag is needed; in fact I think that flag would also >> better go away in favor of just inspecting xcr0_accum). > > if xrstor() side depend on checking xcr0_accum and using_xsaves, > then xsave() can not only depend on using_xsaves (or > X86_FEATURE_USE_XSAVES). So I will drop alternativer patching > in xsave() side. > And both xsave() xrestor() will depend on using_xsaves and checking > xcr0_accum. And compress_xsave_states() will check this too. > > Detail is : > > #define XSTATE_SUPER 0 Not an ideal name I would say. XSTATE_XSAVES_ONLY maybe? > #define using_xsaves 0 > > if ( using_xsaves && (v->arch.xcr0_accum & XSTATE_SUPER) ) > { > > ..... > XSAVES/XRSTORS; > } So what does the left side of the && then do that the right side doesn't already cover? When there's no XSAVES support, then code elsewhere should (and already does afaict) guarantee that the respective bits in xcr0_accum can't ever get turned on. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |