Add cacheline alignment to some critical SMP management maps.
These are in particular important for NUMA systems to avoid false
sharing.

Signed-off-by: Christoph Lameter <[EMAIL PROTECTED]>
Signed-off-by: Shai Fultheim <[EMAIL PROTECTED]>

Index: linux-2.6.11/arch/i386/kernel/smpboot.c
===================================================================
--- linux-2.6.11.orig/arch/i386/kernel/smpboot.c        2005-03-14 
10:32:53.349590752 -0800
+++ linux-2.6.11/arch/i386/kernel/smpboot.c     2005-03-14 10:33:48.592192600 
-0800
@@ -64,7 +64,7 @@ int phys_proc_id[NR_CPUS]; /* Package ID
 EXPORT_SYMBOL(phys_proc_id);

 /* bitmap of online cpus */
-cpumask_t cpu_online_map;
+cpumask_t cpu_online_map __cacheline_aligned;

 cpumask_t cpu_callin_map;
 cpumask_t cpu_callout_map;
@@ -472,10 +472,10 @@ extern struct {
 #ifdef CONFIG_NUMA

 /* which logical CPUs are on which nodes */
-cpumask_t node_2_cpu_mask[MAX_NUMNODES] =
+cpumask_t node_2_cpu_mask[MAX_NUMNODES] __cacheline_aligned =
                                { [0 ... MAX_NUMNODES-1] = CPU_MASK_NONE };
 /* which node each logical CPU is on */
-int cpu_2_node[NR_CPUS] = { [0 ... NR_CPUS-1] = 0 };
+int cpu_2_node[NR_CPUS] __cacheline_aligned = { [0 ... NR_CPUS-1] = 0 };
 EXPORT_SYMBOL(cpu_2_node);

 /* set up a mapping between cpu and node. */
@@ -503,7 +503,8 @@ static inline void unmap_cpu_to_node(int

 #endif /* CONFIG_NUMA */

-u8 cpu_2_logical_apicid[NR_CPUS] = { [0 ... NR_CPUS-1] = BAD_APICID };
+u8 cpu_2_logical_apicid[NR_CPUS] __cacheline_aligned =
+                       { [0 ... NR_CPUS-1] = BAD_APICID };

 static void map_cpu_to_logical_apicid(void)
 {
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to