2006-02-08 12:33:40

by Heiko Carstens

[permalink] [raw]
Subject: [patch 03/10] s390: earlier initialization of cpu_possible_map

From: Heiko Carstens <[email protected]>

Initiliazing of cpu_possible_map was done in smp_prepare_cpus which is
way too late. Therefore assign a static value to cpu_possible_map, since
we don't have access to max_cpus in setup_arch.

Signed-off-by: Heiko Carstens <[email protected]>
---

arch/s390/kernel/smp.c | 6 +-----
1 files changed, 1 insertion(+), 5 deletions(-)

diff -urpN linux-2.6/arch/s390/kernel/smp.c linux-2.6-patched/arch/s390/kernel/smp.c
--- linux-2.6/arch/s390/kernel/smp.c 2006-02-08 10:48:03.000000000 +0100
+++ linux-2.6-patched/arch/s390/kernel/smp.c 2006-02-08 10:48:43.000000000 +0100
@@ -52,7 +52,7 @@ extern volatile int __cpu_logical_map[];
struct _lowcore *lowcore_ptr[NR_CPUS];

cpumask_t cpu_online_map;
-cpumask_t cpu_possible_map;
+cpumask_t cpu_possible_map = CPU_MASK_ALL;

static struct task_struct *current_set[NR_CPUS];

@@ -514,9 +514,6 @@ __init smp_check_cpus(unsigned int max_c
num_cpus++;
}

- for (cpu = 1; cpu < max_cpus; cpu++)
- cpu_set(cpu, cpu_possible_map);
-
printk("Detected %d CPU's\n",(int) num_cpus);
printk("Boot cpu address %2X\n", boot_cpu_addr);
}
@@ -810,7 +807,6 @@ void __devinit smp_prepare_boot_cpu(void

cpu_set(0, cpu_online_map);
cpu_set(0, cpu_present_map);
- cpu_set(0, cpu_possible_map);
S390_lowcore.percpu_offset = __per_cpu_offset[0];
current_set[0] = current;
}


2006-02-08 16:40:29

by Dipankar Sarma

[permalink] [raw]
Subject: Re: [patch 03/10] s390: earlier initialization of cpu_possible_map

On Wed, Feb 08, 2006 at 01:33:37PM +0100, Heiko Carstens wrote:
> From: Heiko Carstens <[email protected]>
>
> Initiliazing of cpu_possible_map was done in smp_prepare_cpus which is
> way too late. Therefore assign a static value to cpu_possible_map, since
> we don't have access to max_cpus in setup_arch.

With this and Ivan's alpha fix, it should now be safe to use
for_each_cpu() in vfs_caches_init() path as done by the merged
patch from Eric. I have done a quick check and couldn't find
any other late initialization of cpu_possible_map, but arch
maintainers probably can say for sure.

Thanks
Dipankar