Tejun Heo 1142d81029 cpu_stop: implement stop_cpu[s]()
Implement a simplistic per-cpu maximum priority cpu monopolization
mechanism.  A non-sleeping callback can be scheduled to run on one or
multiple cpus with maximum priority monopolozing those cpus.  This is
primarily to replace and unify RT workqueue usage in stop_machine and
scheduler migration_thread which currently is serving multiple
purposes.

Four functions are provided - stop_one_cpu(), stop_one_cpu_nowait(),
stop_cpus() and try_stop_cpus().

This is to allow clean sharing of resources among stop_cpu and all the
migration thread users.  One stopper thread per cpu is created which
is currently named "stopper/CPU".  This will eventually replace the
migration thread and take on its name.

* This facility was originally named cpuhog and lived in separate
  files but Peter Zijlstra nacked the name and thus got renamed to
  cpu_stop and moved into stop_machine.c.

* Better reporting of preemption leak as per Peter's suggestion.

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Dimitri Sivanich <sivanich@sgi.com>
2010-05-06 18:49:20 +02:00
..
2009-09-21 14:29:21 +02:00
2010-04-15 09:36:16 +02:00
2010-03-24 16:31:19 -07:00
2010-04-15 09:36:16 +02:00
2010-04-15 09:36:16 +02:00
2009-09-18 09:48:52 -07:00
2010-04-15 09:36:16 +02:00
2009-12-14 23:55:34 +01:00
2009-07-24 10:53:29 +02:00
2010-02-10 17:47:17 -08:00
2010-03-06 11:26:32 -08:00
2010-04-02 20:12:05 +02:00
2010-03-06 11:26:33 -08:00
2010-03-12 15:52:32 -08:00
2010-03-12 15:53:10 -08:00
2010-03-06 11:26:23 -08:00
2009-09-23 18:13:10 -07:00
2010-04-02 20:12:00 +02:00