Loading arch/ia64/kernel/smpboot.c +4 −0 Original line number Diff line number Diff line Loading @@ -390,11 +390,13 @@ smp_callin (void) fix_b0_for_bsp(); #ifdef CONFIG_NUMA /* * numa_node_id() works after this. */ set_numa_node(cpu_to_node_map[cpuid]); set_numa_mem(local_memory_node(cpu_to_node_map[cpuid])); #endif ipi_call_lock_irq(); spin_lock(&vector_lock); Loading Loading @@ -638,7 +640,9 @@ void __devinit smp_prepare_boot_cpu(void) { cpu_set(smp_processor_id(), cpu_online_map); cpu_set(smp_processor_id(), cpu_callin_map); #ifdef CONFIG_NUMA set_numa_node(cpu_to_node_map[smp_processor_id()]); #endif per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE; paravirt_post_smp_prepare_boot_cpu(); } Loading arch/ia64/mm/numa.c +17 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ #include <linux/init.h> #include <linux/bootmem.h> #include <linux/module.h> #include <linux/random.h> #include <asm/mmzone.h> #include <asm/numa.h> Loading Loading @@ -50,6 +51,22 @@ paddr_to_nid(unsigned long paddr) return (i < num_node_memblks) ? node_memblk[i].nid : (num_node_memblks ? -1 : 0); } /* * Return the bit number of a random bit set in the nodemask. * (returns -1 if nodemask is empty) */ int __node_random(const nodemask_t *maskp) { int w, bit = -1; w = nodes_weight(*maskp); if (w) bit = bitmap_ord_to_pos(maskp->bits, get_random_int() % w, MAX_NUMNODES); return bit; } EXPORT_SYMBOL(__node_random); #if defined(CONFIG_SPARSEMEM) && defined(CONFIG_NUMA) /* * Because of holes evaluate on section limits. Loading Loading
arch/ia64/kernel/smpboot.c +4 −0 Original line number Diff line number Diff line Loading @@ -390,11 +390,13 @@ smp_callin (void) fix_b0_for_bsp(); #ifdef CONFIG_NUMA /* * numa_node_id() works after this. */ set_numa_node(cpu_to_node_map[cpuid]); set_numa_mem(local_memory_node(cpu_to_node_map[cpuid])); #endif ipi_call_lock_irq(); spin_lock(&vector_lock); Loading Loading @@ -638,7 +640,9 @@ void __devinit smp_prepare_boot_cpu(void) { cpu_set(smp_processor_id(), cpu_online_map); cpu_set(smp_processor_id(), cpu_callin_map); #ifdef CONFIG_NUMA set_numa_node(cpu_to_node_map[smp_processor_id()]); #endif per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE; paravirt_post_smp_prepare_boot_cpu(); } Loading
arch/ia64/mm/numa.c +17 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ #include <linux/init.h> #include <linux/bootmem.h> #include <linux/module.h> #include <linux/random.h> #include <asm/mmzone.h> #include <asm/numa.h> Loading Loading @@ -50,6 +51,22 @@ paddr_to_nid(unsigned long paddr) return (i < num_node_memblks) ? node_memblk[i].nid : (num_node_memblks ? -1 : 0); } /* * Return the bit number of a random bit set in the nodemask. * (returns -1 if nodemask is empty) */ int __node_random(const nodemask_t *maskp) { int w, bit = -1; w = nodes_weight(*maskp); if (w) bit = bitmap_ord_to_pos(maskp->bits, get_random_int() % w, MAX_NUMNODES); return bit; } EXPORT_SYMBOL(__node_random); #if defined(CONFIG_SPARSEMEM) && defined(CONFIG_NUMA) /* * Because of holes evaluate on section limits. Loading