[tip:x86/fpu] x86/fpu: Finish excising 'eagerfpu'

2016-10-18 Thread tip-bot for Andy Lutomirski
Commit-ID:  e63650840e8b053aa09ad934877e87e9941ed135
Gitweb: http://git.kernel.org/tip/e63650840e8b053aa09ad934877e87e9941ed135
Author: Andy Lutomirski 
AuthorDate: Mon, 17 Oct 2016 14:40:11 -0700
Committer:  Ingo Molnar 
CommitDate: Tue, 18 Oct 2016 09:56:03 +0200

x86/fpu: Finish excising 'eagerfpu'

Now that eagerfpu= is gone, remove it from the docs and some
comments.  Also sync the changes to tools/.

Signed-off-by: Andy Lutomirski 
Cc: Borislav Petkov 
Cc: Brian Gerst 
Cc: Dave Hansen 
Cc: Denys Vlasenko 
Cc: Fenghua Yu 
Cc: H. Peter Anvin 
Cc: Josh Poimboeuf 
Cc: Linus Torvalds 
Cc: Oleg Nesterov 
Cc: Peter Zijlstra 
Cc: Quentin Casasnovas 
Cc: Rik van Riel 
Cc: Thomas Gleixner 
Link: 
http://lkml.kernel.org/r/cf430dd4481d41280e93ac6cf0def1007a67fc8e.1476740397.git.l...@kernel.org
Signed-off-by: Ingo Molnar 
---
 Documentation/kernel-parameters.txt  |  6 --
 arch/x86/include/asm/cpufeatures.h   |  1 -
 arch/x86/include/asm/fpu/types.h | 23 ---
 arch/x86/mm/pkeys.c  |  3 +--
 tools/arch/x86/include/asm/cpufeatures.h |  1 -
 5 files changed, 1 insertion(+), 33 deletions(-)

diff --git a/Documentation/kernel-parameters.txt 
b/Documentation/kernel-parameters.txt
index 37babf9..459b301 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1074,12 +1074,6 @@ bytes respectively. Such letter suffixes can also be 
entirely omitted.
nopku   [X86] Disable Memory Protection Keys CPU feature found
in some Intel CPUs.
 
-   eagerfpu=   [X86]
-   on  enable eager fpu restore
-   off disable eager fpu restore
-   autoselects the default scheme, which automatically
-   enables eagerfpu restore for xsaveopt.
-
module.async_probe [KNL]
Enable asynchronous probe on this module.
 
diff --git a/arch/x86/include/asm/cpufeatures.h 
b/arch/x86/include/asm/cpufeatures.h
index b212b86..2599222 100644
--- a/arch/x86/include/asm/cpufeatures.h
+++ b/arch/x86/include/asm/cpufeatures.h
@@ -104,7 +104,6 @@
 #define X86_FEATURE_EXTD_APICID( 3*32+26) /* has extended APICID (8 
bits) */
 #define X86_FEATURE_AMD_DCM ( 3*32+27) /* multi-node processor */
 #define X86_FEATURE_APERFMPERF ( 3*32+28) /* APERFMPERF */
-/* free, was #define X86_FEATURE_EAGER_FPU ( 3*32+29) * "eagerfpu" Non 
lazy FPU restore */
 #define X86_FEATURE_NONSTOP_TSC_S3 ( 3*32+30) /* TSC doesn't stop in S3 state 
*/
 
 /* Intel-defined CPU features, CPUID level 0x0001 (ecx), word 4 */
diff --git a/arch/x86/include/asm/fpu/types.h b/arch/x86/include/asm/fpu/types.h
index e31332d..3c80f5b 100644
--- a/arch/x86/include/asm/fpu/types.h
+++ b/arch/x86/include/asm/fpu/types.h
@@ -329,29 +329,6 @@ struct fpu {
 * the registers in the FPU are more recent than this state
 * copy. If the task context-switches away then they get
 * saved here and represent the FPU state.
-*
-* After context switches there may be a (short) time period
-* during which the in-FPU hardware registers are unchanged
-* and still perfectly match this state, if the tasks
-* scheduled afterwards are not using the FPU.
-*
-* This is the 'lazy restore' window of optimization, which
-* we track though 'fpu_fpregs_owner_ctx' and 'fpu->last_cpu'.
-*
-* We detect whether a subsequent task uses the FPU via setting
-* CR0::TS to 1, which causes any FPU use to raise a #NM fault.
-*
-* During this window, if the task gets scheduled again, we
-* might be able to skip having to do a restore from this
-* memory buffer to the hardware registers - at the cost of
-* incurring the overhead of #NM fault traps.
-*
-* Note that on modern CPUs that support the XSAVEOPT (or other
-* optimized XSAVE instructions), we don't use #NM traps anymore,
-* as the hardware can track whether FPU registers need saving
-* or not. On such CPUs we activate the non-lazy ('eagerfpu')
-* logic, which unconditionally saves/restores all FPU state
-* across context switches. (if FPU state exists.)
 */
union fpregs_state  state;
/*
diff --git a/arch/x86/mm/pkeys.c b/arch/x86/mm/pkeys.c
index f88ce0e..2dab69a 100644
--- a/arch/x86/mm/pkeys.c
+++ b/arch/x86/mm/pkeys.c
@@ -141,8 +141,7 @@ u32 init_pkru_value = PKRU_AD_KEY( 1) | PKRU_AD_KEY( 2) | 
PKRU_AD_KEY( 3) 

[tip:x86/fpu] x86/fpu: Finish excising 'eagerfpu'

2016-10-18 Thread tip-bot for Andy Lutomirski
Commit-ID:  e63650840e8b053aa09ad934877e87e9941ed135
Gitweb: http://git.kernel.org/tip/e63650840e8b053aa09ad934877e87e9941ed135
Author: Andy Lutomirski 
AuthorDate: Mon, 17 Oct 2016 14:40:11 -0700
Committer:  Ingo Molnar 
CommitDate: Tue, 18 Oct 2016 09:56:03 +0200

x86/fpu: Finish excising 'eagerfpu'

Now that eagerfpu= is gone, remove it from the docs and some
comments.  Also sync the changes to tools/.

Signed-off-by: Andy Lutomirski 
Cc: Borislav Petkov 
Cc: Brian Gerst 
Cc: Dave Hansen 
Cc: Denys Vlasenko 
Cc: Fenghua Yu 
Cc: H. Peter Anvin 
Cc: Josh Poimboeuf 
Cc: Linus Torvalds 
Cc: Oleg Nesterov 
Cc: Peter Zijlstra 
Cc: Quentin Casasnovas 
Cc: Rik van Riel 
Cc: Thomas Gleixner 
Link: 
http://lkml.kernel.org/r/cf430dd4481d41280e93ac6cf0def1007a67fc8e.1476740397.git.l...@kernel.org
Signed-off-by: Ingo Molnar 
---
 Documentation/kernel-parameters.txt  |  6 --
 arch/x86/include/asm/cpufeatures.h   |  1 -
 arch/x86/include/asm/fpu/types.h | 23 ---
 arch/x86/mm/pkeys.c  |  3 +--
 tools/arch/x86/include/asm/cpufeatures.h |  1 -
 5 files changed, 1 insertion(+), 33 deletions(-)

diff --git a/Documentation/kernel-parameters.txt 
b/Documentation/kernel-parameters.txt
index 37babf9..459b301 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1074,12 +1074,6 @@ bytes respectively. Such letter suffixes can also be 
entirely omitted.
nopku   [X86] Disable Memory Protection Keys CPU feature found
in some Intel CPUs.
 
-   eagerfpu=   [X86]
-   on  enable eager fpu restore
-   off disable eager fpu restore
-   autoselects the default scheme, which automatically
-   enables eagerfpu restore for xsaveopt.
-
module.async_probe [KNL]
Enable asynchronous probe on this module.
 
diff --git a/arch/x86/include/asm/cpufeatures.h 
b/arch/x86/include/asm/cpufeatures.h
index b212b86..2599222 100644
--- a/arch/x86/include/asm/cpufeatures.h
+++ b/arch/x86/include/asm/cpufeatures.h
@@ -104,7 +104,6 @@
 #define X86_FEATURE_EXTD_APICID( 3*32+26) /* has extended APICID (8 
bits) */
 #define X86_FEATURE_AMD_DCM ( 3*32+27) /* multi-node processor */
 #define X86_FEATURE_APERFMPERF ( 3*32+28) /* APERFMPERF */
-/* free, was #define X86_FEATURE_EAGER_FPU ( 3*32+29) * "eagerfpu" Non 
lazy FPU restore */
 #define X86_FEATURE_NONSTOP_TSC_S3 ( 3*32+30) /* TSC doesn't stop in S3 state 
*/
 
 /* Intel-defined CPU features, CPUID level 0x0001 (ecx), word 4 */
diff --git a/arch/x86/include/asm/fpu/types.h b/arch/x86/include/asm/fpu/types.h
index e31332d..3c80f5b 100644
--- a/arch/x86/include/asm/fpu/types.h
+++ b/arch/x86/include/asm/fpu/types.h
@@ -329,29 +329,6 @@ struct fpu {
 * the registers in the FPU are more recent than this state
 * copy. If the task context-switches away then they get
 * saved here and represent the FPU state.
-*
-* After context switches there may be a (short) time period
-* during which the in-FPU hardware registers are unchanged
-* and still perfectly match this state, if the tasks
-* scheduled afterwards are not using the FPU.
-*
-* This is the 'lazy restore' window of optimization, which
-* we track though 'fpu_fpregs_owner_ctx' and 'fpu->last_cpu'.
-*
-* We detect whether a subsequent task uses the FPU via setting
-* CR0::TS to 1, which causes any FPU use to raise a #NM fault.
-*
-* During this window, if the task gets scheduled again, we
-* might be able to skip having to do a restore from this
-* memory buffer to the hardware registers - at the cost of
-* incurring the overhead of #NM fault traps.
-*
-* Note that on modern CPUs that support the XSAVEOPT (or other
-* optimized XSAVE instructions), we don't use #NM traps anymore,
-* as the hardware can track whether FPU registers need saving
-* or not. On such CPUs we activate the non-lazy ('eagerfpu')
-* logic, which unconditionally saves/restores all FPU state
-* across context switches. (if FPU state exists.)
 */
union fpregs_state  state;
/*
diff --git a/arch/x86/mm/pkeys.c b/arch/x86/mm/pkeys.c
index f88ce0e..2dab69a 100644
--- a/arch/x86/mm/pkeys.c
+++ b/arch/x86/mm/pkeys.c
@@ -141,8 +141,7 @@ u32 init_pkru_value = PKRU_AD_KEY( 1) | PKRU_AD_KEY( 2) | 
PKRU_AD_KEY( 3) |
  * Called from the FPU code when creating a fresh set of FPU
  * registers.  This is called from a very specific context where
  * we know the FPU regstiers are safe for use and we can use PKRU
- * directly.  The fact that PKRU is only available when we are
- * using eagerfpu mode makes this possible.
+ * directly.
  */
 void