]> err.no Git - linux-2.6/commitdiff
x86: add noclflush option
authorAndi Kleen <ak@suse.de>
Wed, 30 Jan 2008 12:33:21 +0000 (13:33 +0100)
committerIngo Molnar <mingo@elte.hu>
Wed, 30 Jan 2008 12:33:21 +0000 (13:33 +0100)
To disable CLFLUSH usage, especially in change_page_attr().

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Documentation/kernel-parameters.txt
arch/x86/kernel/cpu/common.c
arch/x86/kernel/setup_64.c

index b8fadf5f75a3e388e29437af4604bba9d60210a8..040e30a33b7c5582451f95dd233d6c4692d1fe91 100644 (file)
@@ -1191,6 +1191,8 @@ and is between 256 and 4096 characters. It is defined in the file
                        register save and restore. The kernel will only save
                        legacy floating-point registers on task switch.
 
+       noclflush       [BUGS=X86] Don't use the CLFLUSH instruction
+
        nohlt           [BUGS=ARM]
 
        no-hlt          [BUGS=X86-32] Tells the kernel that the hlt
index dfc9563fc4f02cd510412c8ff4b3e8d678ee1798..56b7ea8e6c79b2330677c20292a1f21dd2ecc34c 100644 (file)
@@ -542,6 +542,13 @@ void __cpuinit detect_ht(struct cpuinfo_x86 *c)
 }
 #endif
 
+static __init int setup_noclflush(char *arg)
+{
+       setup_clear_cpu_cap(X86_FEATURE_CLFLSH);
+       return 1;
+}
+__setup("noclflush", setup_noclflush);
+
 void __cpuinit print_cpu_info(struct cpuinfo_x86 *c)
 {
        char *vendor = NULL;
index df159520bbd220b3db0af639375f7bd2c79c61fd..cb9b8a90c094bd83da615880939017e64fa44c19 100644 (file)
@@ -1032,6 +1032,13 @@ void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
 
 }
 
+static __init int setup_noclflush(char *arg)
+{
+       setup_clear_cpu_cap(X86_FEATURE_CLFLSH);
+       return 1;
+}
+__setup("noclflush", setup_noclflush);
+
 void __cpuinit print_cpu_info(struct cpuinfo_x86 *c)
 {
        if (c->x86_model_id[0])