[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20081004183014.769836ff@redhat.com>
Date: Sat, 4 Oct 2008 18:30:14 -0400
From: Chuck Ebbert <cebbert@...hat.com>
To: Andi Kleen <andi@...stfloor.org>
Cc: Ingo Molnar <mingo@...e.hu>, linux-kernel@...r.kernel.org,
Arjan van de Ven <arjan@...radead.org>
Subject: Re: <PING> Re: [patch x86/core] x86: allow number of additional
hotplug CPUs to be set at compile time
On Sat, 04 Oct 2008 18:52:06 +0200
Andi Kleen <andi@...stfloor.org> wrote:
>
> Ping? Can you please test the patch? I think that's the correct fix.
>
> I see Ingo unfortunately merged your initial broken hack, but it's wrong
> and when actually used on a distribution will break real CPU hotplug there.
> Please don't enable that CONFIG option in Fedora. Ideally drop
> the CONFIG patch completely because it cannot do much good.
>
> It should be replaced with the appended patch, which should go into 2.6.27
> after it is confirmed to fix the problem.
>
Yes, it works and I don't see how it could cause any problems.
Ingo, can we get this in 2.6.27? You can drop my original patch.
Tested-by: Chuck Ebbert <cebbert@...hat.com>
> > ---
> >
> > Take disabled cpus into account in alternative.c
> >
> > Otherwise an UP system with one hotplug CPU will not
> > go into UP mode.
> >
> > Signed-off-by: Andi Kleen <ak@...ux.intel.com>
> >
> > Index: linux-2.6.27-rc4-misc/arch/x86/kernel/alternative.c
> > ===================================================================
> > --- linux-2.6.27-rc4-misc.orig/arch/x86/kernel/alternative.c
> > +++ linux-2.6.27-rc4-misc/arch/x86/kernel/alternative.c
> > @@ -454,7 +454,7 @@ void __init alternative_instructions(voi
> > _text, _etext);
> >
> > /* Only switch to UP mode if we don't immediately boot others */
> > - if (num_possible_cpus() == 1 || setup_max_cpus <= 1)
> > + if (num_possible_cpus() - additional_cpus == 1 || setup_max_cpus <= 1)
> > alternatives_smp_switch(0);
> > }
> > #endif
> > Index: linux-2.6.27-rc4-misc/arch/x86/kernel/smpboot.c
> > ===================================================================
> > --- linux-2.6.27-rc4-misc.orig/arch/x86/kernel/smpboot.c
> > +++ linux-2.6.27-rc4-misc/arch/x86/kernel/smpboot.c
> > @@ -1276,7 +1276,7 @@ static void remove_siblinginfo(int cpu)
> > cpu_clear(cpu, cpu_sibling_setup_map);
> > }
> >
> > -static int additional_cpus __initdata = -1;
> > +int additional_cpus = -1;
> >
> > static __init int setup_additional_cpus(char *s)
> > {
> > Index: linux-2.6.27-rc4-misc/include/asm-x86/smp.h
> > ===================================================================
> > --- linux-2.6.27-rc4-misc.orig/include/asm-x86/smp.h
> > +++ linux-2.6.27-rc4-misc/include/asm-x86/smp.h
> > @@ -204,5 +204,7 @@ static inline int hard_smp_processor_id(
> > extern void cpu_uninit(void);
> > #endif
> >
> > +extern int additional_cpus;
> > +
> > #endif /* __ASSEMBLY__ */
> > #endif
> > --
> > ak@...ux.intel.com
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists