Re: [RFC PATCH 1/4] Refcount Based Cpu-Hotplug Implementation

From: Paul Jackson
Date: Wed Oct 17 2007 - 07:27:27 EST


With the following patch, the four cpu hotplug patches by
Gautham R Shenoy boot successfully on my sn2_defconfig ia64
SN2 Altix system.

This patch moves the cpu_hotplug_init() code outside of the
#ifdef CONFIG_HOTPLUG_CPU code.

I will confess to being confused however as to the best way
to handle this. Having "cpu_hotplug_init" be a piece of code
that has to execute whether or not CONFIG_HOTPLUG_CPU is
enabled doesn't seem right.

Signed-off-by: Paul Jackson <pj@xxxxxxx>

---

include/linux/cpu.h | 3 +--
kernel/cpu.c | 4 ++--
2 files changed, 3 insertions(+), 4 deletions(-)

--- 2.6.23-mm1.orig/include/linux/cpu.h 2007-10-17 03:59:59.529623639 -0700
+++ 2.6.23-mm1/include/linux/cpu.h 2007-10-17 04:03:56.257223754 -0700
@@ -83,6 +83,7 @@ static inline void unregister_cpu_notifi

#endif /* CONFIG_SMP */
extern struct sysdev_class cpu_sysdev_class;
+extern void cpu_hotplug_init(void);

#ifdef CONFIG_HOTPLUG_CPU
/* Stop CPUs going up and down. */
@@ -97,7 +98,6 @@ static inline void cpuhotplug_mutex_unlo
mutex_unlock(cpu_hp_mutex);
}

-extern void cpu_hotplug_init(void);
extern void get_online_cpus(void);
extern void put_online_cpus(void);
#define hotcpu_notifier(fn, pri) { \
@@ -117,7 +117,6 @@ static inline void cpuhotplug_mutex_lock
static inline void cpuhotplug_mutex_unlock(struct mutex *cpu_hp_mutex)
{ }

-#define cpu_hotplug_init() do { } while (0)
#define get_online_cpus() do { } while (0)
#define put_online_cpus() do { } while (0)
#define hotcpu_notifier(fn, pri) do { (void)(fn); } while (0)
--- 2.6.23-mm1.orig/kernel/cpu.c 2007-10-17 03:59:59.873628872 -0700
+++ 2.6.23-mm1/kernel/cpu.c 2007-10-17 04:04:52.522079165 -0700
@@ -38,8 +38,6 @@ static struct {

#define writer_exists() (cpu_hotplug.active_writer != NULL)

-#ifdef CONFIG_HOTPLUG_CPU
-
void __init cpu_hotplug_init(void)
{
cpu_hotplug.active_writer = NULL;
@@ -48,6 +46,8 @@ void __init cpu_hotplug_init(void)
init_completion(&cpu_hotplug.readers_done);
}

+#ifdef CONFIG_HOTPLUG_CPU
+
void get_online_cpus(void)
{
might_sleep();


--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj@xxxxxxx> 1.925.600.0401
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/