Răsfoiți Sursa

[PATCH] x86_64: Fixup read_mostly section on internode cache line size for vSMP

Fixup the read mostly section to start at internode cacheline boundary.

Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
Signed-off-by: Shai Fultheim <shai@scalex86.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Ravikiran G Thirumalai 19 ani în urmă
părinte
comite
e405d06729
2 a modificat fișierele cu 6 adăugiri și 1 ștergeri
  1. 5 0
      arch/x86_64/Kconfig
  2. 1 1
      arch/x86_64/kernel/vmlinux.lds.S

+ 5 - 0
arch/x86_64/Kconfig

@@ -136,6 +136,11 @@ config X86_L1_CACHE_SHIFT
 	default "7" if GENERIC_CPU || MPSC
 	default "6" if MK8
 
+config X86_INTERNODE_CACHE_BYTES
+	int
+	default "4096" if X86_VSMP
+	default X86_L1_CACHE_BYTES if !X86_VSMP
+
 config X86_TSC
 	bool
 	default y

+ 1 - 1
arch/x86_64/kernel/vmlinux.lds.S

@@ -65,7 +65,7 @@ SECTIONS
   .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) {
 	*(.data.cacheline_aligned)
   }
-  . = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
+  . = ALIGN(CONFIG_X86_INTERNODE_CACHE_BYTES);
   .data.read_mostly : AT(ADDR(.data.read_mostly) - LOAD_OFFSET) {
   	*(.data.read_mostly)
   }