All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] [1/3] CPA: Don't flush caches on CPUs that support self-snoop
@ 2008-02-01  9:55 Andi Kleen
  2008-02-01  9:55 ` [PATCH] [2/3] CPA: Only flush the cache if the caching attributes have changed Andi Kleen
  2008-02-01  9:55 ` [PATCH] [3/3] CPA: Remove outdated comment in kernel_map_pages and add warning about recursion Andi Kleen
  0 siblings, 2 replies; 3+ messages in thread
From: Andi Kleen @ 2008-02-01  9:55 UTC (permalink / raw)
  To: tglx, mingo, linux-kernel


The specification of SS in the public manuals is a little unclear,
but I got confirmation from Intel that SS implies that there is no cache
flush needed on caching attribute changes.

Signed-off-by: Andi Kleen <ak@suse.de>

---
 arch/x86/mm/pageattr.c       |    5 ++++-
 include/asm-x86/cpufeature.h |    1 +
 2 files changed, 5 insertions(+), 1 deletion(-)

Index: linux/arch/x86/mm/pageattr.c
===================================================================
--- linux.orig/arch/x86/mm/pageattr.c
+++ linux/arch/x86/mm/pageattr.c
@@ -60,7 +60,7 @@ static void __cpa_flush_all(void *arg)
 	 */
 	__flush_tlb_all();
 
-	if (boot_cpu_data.x86_model >= 4)
+	if (!cpu_has_ss && boot_cpu_data.x86_model >= 4)
 		wbinvd();
 }
 
@@ -91,6 +91,9 @@ static void cpa_flush_range(unsigned lon
 
 	on_each_cpu(__cpa_flush_range, NULL, 1, 1);
 
+	if (cpu_has_ss)
+		return;
+
 	/*
 	 * We only need to flush on one CPU,
 	 * clflush is a MESI-coherent instruction that
Index: linux/include/asm-x86/cpufeature.h
===================================================================
--- linux.orig/include/asm-x86/cpufeature.h
+++ linux/include/asm-x86/cpufeature.h
@@ -153,6 +153,7 @@
 #define cpu_has_mtrr		boot_cpu_has(X86_FEATURE_MTRR)
 #define cpu_has_mmx		boot_cpu_has(X86_FEATURE_MMX)
 #define cpu_has_fxsr		boot_cpu_has(X86_FEATURE_FXSR)
+#define cpu_has_ss		boot_cpu_has(X86_FEATURE_SELFSNOOP)
 #define cpu_has_xmm		boot_cpu_has(X86_FEATURE_XMM)
 #define cpu_has_xmm2		boot_cpu_has(X86_FEATURE_XMM2)
 #define cpu_has_xmm3		boot_cpu_has(X86_FEATURE_XMM3)

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-02-01  9:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-01  9:55 [PATCH] [1/3] CPA: Don't flush caches on CPUs that support self-snoop Andi Kleen
2008-02-01  9:55 ` [PATCH] [2/3] CPA: Only flush the cache if the caching attributes have changed Andi Kleen
2008-02-01  9:55 ` [PATCH] [3/3] CPA: Remove outdated comment in kernel_map_pages and add warning about recursion Andi Kleen

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.