All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yang Zhong <yang.zhong@intel.com>
To: "Bae, Chang Seok" <chang.seok.bae@intel.com>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org, tglx@linutronix.de,
	bp@suse.de, dave.hansen@intel.com, jing2.liu@intel.com,
	yang.zhong@intel.com
Subject: Re: [PATCH] x86/fpu: Set the corret permission value for perm.__state_perm
Date: Tue, 9 Nov 2021 08:36:56 +0800	[thread overview]
Message-ID: <20211109003656.GA642@yangzhon-Virtual> (raw)
In-Reply-To: <045FEB79-B7AE-421F-A7F1-1ABC86E0E19F@intel.com>

On Tue, Nov 09, 2021 at 12:13:58AM +0800, Bae, Chang Seok wrote:
> On Nov 8, 2021, at 14:28, Zhong, Yang <yang.zhong@intel.com> wrote:
> >
> > The perm.__state_perm is default xsave set features, when we request
> > AMX permission from application, the requested value(bit18) should be
> > replaced with mask value(requested | permitted), which can keep default
> > features there.
> >
> > Without this change, the below prctl syscall:
> > (1). ARCH_GET_XCOMP_PERM, the bitmask=0x202e7
> > (2). set ARCH_REQ_XCOMP_PERM with XFEATURE_XTILEDATA
> > (3). ARCH_GET_XCOMP_PERM, the bitmask=0x40000, the correct value
> >     should be 0x602e7 here.
> 
> Oh, bad.
> 
> > diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
> > index d28829403ed0..fc1ab0116f4e 100644
> > --- a/arch/x86/kernel/fpu/xstate.c
> > +++ b/arch/x86/kernel/fpu/xstate.c
> > @@ -1626,7 +1626,7 @@ static int __xstate_request_perm(u64 permitted, u64 requested)
> >               return ret;
> >
> >       /* Pairs with the READ_ONCE() in xstate_get_group_perm() */
> > -     WRITE_ONCE(fpu->perm.__state_perm, requested);
> > +     WRITE_ONCE(fpu->perm.__state_perm, mask);
> 
> I think this has to update the group leader’s like:
>     WRITE_ONCE(current->group_leader->thread.fpu.perm.__state_perm, mask);
>

  I think this is no need to change with group leader here, the fpu pointer has defined as below: 
  
  struct fpu *fpu = &current->group_leader->thread.fpu;

  Please check Thomas's changes for KVM, the WRITE_ONCE(fpu->perm.__state_perm, mask) is more reasonable
  here.

  https://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git/commit/?h=x86/fpu-kvm&id=62016e4cc41716b33da890ad43145b646f9db51d

  I also verified this changes from host and guest side, all work well.

  Regards,

  Yang
   


> Thanks,
> Chang
> 
> 
> 

      parent reply	other threads:[~2021-11-09  0:51 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-08 22:28 [PATCH] x86/fpu: Set the corret permission value for perm.__state_perm Yang Zhong
2021-11-08 16:13 ` Bae, Chang Seok
2021-11-08 23:45   ` Bae, Chang Seok
2021-11-09  0:36   ` Yang Zhong [this message]

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=20211109003656.GA642@yangzhon-Virtual \
    --to=yang.zhong@intel.com \
    --cc=bp@suse.de \
    --cc=chang.seok.bae@intel.com \
    --cc=dave.hansen@intel.com \
    --cc=jing2.liu@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.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.