All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Hansen <dave.hansen@linux.intel.com>
To: Yu-cheng Yu <yu-cheng.yu@intel.com>
Cc: x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	linux-kernel@vger.kernel.org, Andy Lutomirski <luto@kernel.org>,
	Borislav Petkov <bp@suse.de>,
	Sai Praneeth Prakhya <sai.praneeth.prakhya@intel.com>,
	"Ravi V. Shankar" <ravi.v.shankar@intel.com>,
	Fenghua Yu <fenghua.yu@intel.com>
Subject: Re: [PATCH v3 9/9] x86/xsaves: Re-enable XSAVES
Date: Tue, 1 Mar 2016 16:45:41 -0800	[thread overview]
Message-ID: <56D637B5.3030907@linux.intel.com> (raw)
In-Reply-To: <20160302003443.GA30899@test-lenovo>

On 03/01/2016 04:34 PM, Yu-cheng Yu wrote:
> On Tue, Mar 01, 2016 at 03:56:12PM -0800, Dave Hansen wrote:
>> On 02/29/2016 09:42 AM, Yu-cheng Yu wrote:
>>> -	setup_clear_cpu_cap(X86_FEATURE_XSAVES);
>>> +	if (!config_enabled(CONFIG_X86_64))
>>> +		setup_clear_cpu_cap(X86_FEATURE_XSAVES);
>>>  }
>>
>> I think we need a much better explanation of this for posterity.  Why
>> are we not supporting this now, and what would someone have to do in the
>> future in order to enable it?
>>
> If anyone is using this newer feature, then that user is most likely using
> a 64-bit capable processor and a 64-bit kernel. The intention here is to
> take out the complexity and any potential of error. If the user removes 
> the restriction and builds a private kernel, it should work but we have
> not checked all possible combinations. I will put these in the comments.

A user can go download a 32-bit version of Ubuntu or Debian and install
it on a 64-bit processor today.  It's a very easy mistake to make when
downloading the install CD.

In any case, I don't have a _problem_ with leaving i386 in the dust
here.  I just want us to be very explicit about what we are doing.

>>> +	/*
>>> +	 * Make it clear that XSAVES supervisor states are not yet
>>> +	 * implemented should anyone expect it to work by changing
>>> +	 * bits in XFEATURE_MASK_* macros and XCR0.
>>> +	 */
>>> +	WARN_ONCE((xfeatures_mask & XFEATURE_MASK_SUPERVISOR),
>>> +		"x86/fpu: XSAVES supervisor states are not yet implemented.\n");
>>> +
>>>  	cr4_set_bits(X86_CR4_OSXSAVE);
>>>  	xsetbv(XCR_XFEATURE_ENABLED_MASK, xfeatures_mask);
>>>  }
>>
>> Let's also do a:
>>
>> 	xfeatures_mask &= ~XFEATURE_MASK_SUPERVISOR;
>>
>> Otherwise, we have a broken system at the moment.
>>
> Currently, if anyone sets any supervisor state in xfeatures_mask, the
> kernel prints out the warning then goes into a protection fault.
> That is a very strong indication to the user. Do we want to mute it? 

By "goes into a protection fault", do you mean that it doesn't boot?

I'd just rather we put the kernel in a known-safe configuration (masking
supervisor state out of xfeatures_mask) rather than rely on the general
protection fault continuing to be generated by whatever is generating it.

  reply	other threads:[~2016-03-02  0:46 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-29 17:41 [PATCH v3 0/9] x86/xsaves: Fix XSAVES known issues Yu-cheng Yu
2016-02-29 17:41 ` [PATCH v3 1/9] x86/xsaves: Define and use user_xstate_size for xstate size in signal context Yu-cheng Yu
2016-02-29 17:42 ` [PATCH v3 2/9] x86/xsaves: Rename xstate_size to kernel_xstate_size to explicitly distinguish xstate size in kernel from user space Yu-cheng Yu
2016-02-29 17:42 ` [PATCH v3 3/9] x86/xsaves: Keep init_fpstate.xsave.header.xfeatures as zero for init optimization Yu-cheng Yu
2016-02-29 17:42 ` [PATCH v3 4/9] x86/xsaves: Introduce a new check that allows correct xstates copy from kernel to user directly Yu-cheng Yu
2016-02-29 17:42 ` [PATCH v3 5/9] x86/xsaves: Align xstate components according to CPUID Yu-cheng Yu
2016-02-29 17:42 ` [PATCH v3 6/9] x86/xsaves: Supervisor state component offset Yu-cheng Yu
2016-02-29 17:42 ` [PATCH v3 7/9] x86/xsaves: Fix PTRACE frames for XSAVES Yu-cheng Yu
2016-02-29 17:42 ` [PATCH v3 8/9] x86/xsaves: Fix XSTATE component offset print out Yu-cheng Yu
2016-02-29 17:42 ` [PATCH v3 9/9] x86/xsaves: Re-enable XSAVES Yu-cheng Yu
2016-03-01 23:56   ` Dave Hansen
2016-03-02  0:34     ` Yu-cheng Yu
2016-03-02  0:45       ` Dave Hansen [this message]
2016-03-02  0:48         ` Yu-cheng Yu
2016-03-02  0:53         ` H. Peter Anvin
2016-03-02  0:58           ` Yu-cheng Yu

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=56D637B5.3030907@linux.intel.com \
    --to=dave.hansen@linux.intel.com \
    --cc=bp@suse.de \
    --cc=fenghua.yu@intel.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=mingo@redhat.com \
    --cc=ravi.v.shankar@intel.com \
    --cc=sai.praneeth.prakhya@intel.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --cc=yu-cheng.yu@intel.com \
    /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.