aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/kernel-parameters.txt15
-rw-r--r--arch/x86/kernel/cpu/common.c8
2 files changed, 23 insertions, 0 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 30a8ad0dae53..0ebd95252c3f 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -2124,6 +2124,21 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
2124 and restore using xsave. The kernel will fallback to 2124 and restore using xsave. The kernel will fallback to
2125 enabling legacy floating-point and sse state. 2125 enabling legacy floating-point and sse state.
2126 2126
2127 noxsaveopt [X86] Disables xsaveopt used in saving x86 extended
2128 register states. The kernel will fall back to use
2129 xsave to save the states. By using this parameter,
2130 performance of saving the states is degraded because
2131 xsave doesn't support modified optimization while
2132 xsaveopt supports it on xsaveopt enabled systems.
2133
2134 noxsaves [X86] Disables xsaves and xrstors used in saving and
2135 restoring x86 extended register state in compacted
2136 form of xsave area. The kernel will fall back to use
2137 xsaveopt and xrstor to save and restore the states
2138 in standard form of xsave area. By using this
2139 parameter, xsave area per process might occupy more
2140 memory on xsaves enabled systems.
2141
2127 eagerfpu= [X86] 2142 eagerfpu= [X86]
2128 on enable eager fpu restore 2143 on enable eager fpu restore
2129 off disable eager fpu restore 2144 off disable eager fpu restore
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index e7c4b979d504..cdc95852532d 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -146,6 +146,7 @@ static int __init x86_xsave_setup(char *s)
146{ 146{
147 setup_clear_cpu_cap(X86_FEATURE_XSAVE); 147 setup_clear_cpu_cap(X86_FEATURE_XSAVE);
148 setup_clear_cpu_cap(X86_FEATURE_XSAVEOPT); 148 setup_clear_cpu_cap(X86_FEATURE_XSAVEOPT);
149 setup_clear_cpu_cap(X86_FEATURE_XSAVES);
149 setup_clear_cpu_cap(X86_FEATURE_AVX); 150 setup_clear_cpu_cap(X86_FEATURE_AVX);
150 setup_clear_cpu_cap(X86_FEATURE_AVX2); 151 setup_clear_cpu_cap(X86_FEATURE_AVX2);
151 return 1; 152 return 1;
@@ -159,6 +160,13 @@ static int __init x86_xsaveopt_setup(char *s)
159} 160}
160__setup("noxsaveopt", x86_xsaveopt_setup); 161__setup("noxsaveopt", x86_xsaveopt_setup);
161 162
163static int __init x86_xsaves_setup(char *s)
164{
165 setup_clear_cpu_cap(X86_FEATURE_XSAVES);
166 return 1;
167}
168__setup("noxsaves", x86_xsaves_setup);
169
162#ifdef CONFIG_X86_32 170#ifdef CONFIG_X86_32
163static int cachesize_override = -1; 171static int cachesize_override = -1;
164static int disable_x86_serial_nr = 1; 172static int disable_x86_serial_nr = 1;