public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] CPU hotplug: Slow down hotplug operations
@ 2014-05-07 19:57 Borislav Petkov
  2014-05-07 20:06 ` Andrew Morton
  0 siblings, 1 reply; 9+ messages in thread
From: Borislav Petkov @ 2014-05-07 19:57 UTC (permalink / raw)
  To: LKML
  Cc: H. Peter Anvin, Ingo Molnar, Thomas Gleixner, Peter Zijlstra,
	Mel Gorman, Steven Rostedt, Mike Galbraith, Andrew Morton,
	Linus Torvalds

From: Borislav Petkov <bp@suse.de>

We have all those eager tester dudes which scratch up a dirty script to
pound on CPU hotplug senselessly and then report bugs they've managed to
trigger.

Well, first of all, most, if not all, bugs they trigger are CPU hotplug
related anyway. But we know hotplug is full of duct tape and brown
paper bags. So we end up clearly wasting too much time dealing with a
mechanism we know it is b0rked in the first place.

Oh, and I would understand if that pounding were close to some real
usage patterns but I've yet to receive a justification for toggling
cores on- and offline senselessly.

In any case, before this gets rewritten properly (I'm being told we
might get lucky after all) let's slow down hotplugging on purpose and
thus make it uninteresting, as a temporary brown paper bag solution
until the real thing gets done.

This way we'll save us a lot of time and efforts in chasing the wrong
bugs.

Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Mel Gorman <mgorman@suse.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Mike Galbraith <mgalbraith@suse.de>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
---
 drivers/base/cpu.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c
index 006b1bc5297d..615c7af767ed 100644
--- a/drivers/base/cpu.c
+++ b/drivers/base/cpu.c
@@ -40,6 +40,11 @@ static void change_cpu_under_node(struct cpu *cpu,
 	cpu->node_id = to_nid;
 }
 
+static void delay_hotplug(void)
+{
+	schedule_timeout_uninterruptible(msecs_to_jiffies(MSEC_PER_SEC));
+}
+
 static int __ref cpu_subsys_online(struct device *dev)
 {
 	struct cpu *cpu = container_of(dev, struct cpu, dev);
@@ -47,6 +52,8 @@ static int __ref cpu_subsys_online(struct device *dev)
 	int from_nid, to_nid;
 	int ret;
 
+	delay_hotplug();
+
 	from_nid = cpu_to_node(cpuid);
 	if (from_nid == NUMA_NO_NODE)
 		return -ENODEV;
@@ -65,6 +72,8 @@ static int __ref cpu_subsys_online(struct device *dev)
 
 static int cpu_subsys_offline(struct device *dev)
 {
+	delay_hotplug();
+
 	return cpu_down(dev->id);
 }
 
-- 
1.9.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2014-05-12 20:56 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-07 19:57 [PATCH] CPU hotplug: Slow down hotplug operations Borislav Petkov
2014-05-07 20:06 ` Andrew Morton
2014-05-07 20:22   ` Thomas Gleixner
2014-05-07 20:26     ` Borislav Petkov
2014-05-11 17:02       ` Pavel Machek
2014-05-11 18:29         ` Thomas Gleixner
2014-05-11 18:48           ` Borislav Petkov
2014-05-12 20:56             ` Pavel Machek
2014-05-08  4:31     ` Srivatsa S. Bhat

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox