diff options
author | Tejun Heo <tj@kernel.org> | 2010-10-19 11:14:49 +0200 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2010-10-19 11:14:49 +0200 |
commit | 31ddd871fc3db73e2024cb3eb3ee5051edf5a80f (patch) | |
tree | 3a2d578ec9ebefecca5e4cad196023bbe1a7d0f2 /kernel/workqueue.c | |
parent | 10ccd84695c2a03075bad2f4fc728575fe9051f8 (diff) | |
download | lwn-31ddd871fc3db73e2024cb3eb3ee5051edf5a80f.tar.gz lwn-31ddd871fc3db73e2024cb3eb3ee5051edf5a80f.zip |
workqueue: Clarify that schedule_on_each_cpu is synchronous
The documentation for schedule_on_each_cpu() states that it calls a
function on each online CPU from keventd. This can easily be
interpreted as an asyncronous call because the description does not
mention that flush_work is called. Clarify that it is synchronous.
tj: rephrased a bit
Signed-off-by: Mel Gorman <mel@csn.ul.ie>
Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'kernel/workqueue.c')
-rw-r--r-- | kernel/workqueue.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 2c6871cbcbee..eb5c1972443a 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -2676,13 +2676,15 @@ int schedule_delayed_work_on(int cpu, EXPORT_SYMBOL(schedule_delayed_work_on); /** - * schedule_on_each_cpu - call a function on each online CPU from keventd + * schedule_on_each_cpu - execute a function synchronously on each online CPU * @func: the function to call * - * Returns zero on success. - * Returns -ve errno on failure. - * + * schedule_on_each_cpu() executes @func on each online CPU using the + * system workqueue and blocks until all CPUs have completed. * schedule_on_each_cpu() is very slow. + * + * RETURNS: + * 0 on success, -errno on failure. */ int schedule_on_each_cpu(work_func_t func) { |