| Submitter | Peter Zijlstra |
|---|---|
| Date | Dec. 15, 2009, 3:03 p.m. |
| Message ID | <1260889402.4165.434.camel@twins> |
| Download | mbox | patch |
| Permalink | /patch/41190/ |
| State | Not Applicable |
| Headers | show |
Comments
Peter Zijlstra wrote: > Could you try the below? > No luck. Still the same issue. The mask values don't change. Thanks -Sachin > --- > init/main.c | 7 +------ > 1 files changed, 1 insertions(+), 6 deletions(-) > > diff --git a/init/main.c b/init/main.c > index 4051d75..4be7de2 100644 > --- a/init/main.c > +++ b/init/main.c > @@ -369,12 +369,6 @@ static void __init smp_init(void) > { > unsigned int cpu; > > - /* > - * Set up the current CPU as possible to migrate to. > - * The other ones will be done by cpu_up/cpu_down() > - */ > - set_cpu_active(smp_processor_id(), true); > - > /* FIXME: This should be done in userspace --RR */ > for_each_present_cpu(cpu) { > if (num_online_cpus() >= setup_max_cpus) > @@ -486,6 +480,7 @@ static void __init boot_cpu_init(void) > int cpu = smp_processor_id(); > /* Mark the boot cpu "present", "online" etc for SMP and UP case */ > set_cpu_online(cpu, true); > + set_cpu_active(cpu, true); > set_cpu_present(cpu, true); > set_cpu_possible(cpu, true); > } > > >
On Wed, 2009-12-16 at 11:08 +0530, Sachin Sant wrote: > Peter Zijlstra wrote: > > Could you try the below? > > > No luck. Still the same issue. The mask values don't change. Bugger, that patch did solve a similar problem for a patch I'm working on. Can you maybe add a print of the cpu_active_mask() in set_cpu_active() using WARN() so we can see where it changes the mask, and why it things its empty? > > --- > > init/main.c | 7 +------ > > 1 files changed, 1 insertions(+), 6 deletions(-) > > > > diff --git a/init/main.c b/init/main.c > > index 4051d75..4be7de2 100644 > > --- a/init/main.c > > +++ b/init/main.c > > @@ -369,12 +369,6 @@ static void __init smp_init(void) > > { > > unsigned int cpu; > > > > - /* > > - * Set up the current CPU as possible to migrate to. > > - * The other ones will be done by cpu_up/cpu_down() > > - */ > > - set_cpu_active(smp_processor_id(), true); > > - > > /* FIXME: This should be done in userspace --RR */ > > for_each_present_cpu(cpu) { > > if (num_online_cpus() >= setup_max_cpus) > > @@ -486,6 +480,7 @@ static void __init boot_cpu_init(void) > > int cpu = smp_processor_id(); > > /* Mark the boot cpu "present", "online" etc for SMP and UP case */ > > set_cpu_online(cpu, true); > > + set_cpu_active(cpu, true); > > set_cpu_present(cpu, true); > > set_cpu_possible(cpu, true); > > } > > > > > > > >
Patch
diff --git a/init/main.c b/init/main.c index 4051d75..4be7de2 100644 --- a/init/main.c +++ b/init/main.c @@ -369,12 +369,6 @@ static void __init smp_init(void) { unsigned int cpu; - /* - * Set up the current CPU as possible to migrate to. - * The other ones will be done by cpu_up/cpu_down() - */ - set_cpu_active(smp_processor_id(), true); - /* FIXME: This should be done in userspace --RR */ for_each_present_cpu(cpu) { if (num_online_cpus() >= setup_max_cpus) @@ -486,6 +480,7 @@ static void __init boot_cpu_init(void) int cpu = smp_processor_id(); /* Mark the boot cpu "present", "online" etc for SMP and UP case */ set_cpu_online(cpu, true); + set_cpu_active(cpu, true); set_cpu_present(cpu, true); set_cpu_possible(cpu, true); }