aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/workqueue.c
diff options
context:
space:
mode:
authorJoonsoo Kim <js1304@gmail.com>2012-08-15 10:25:41 -0400
committerTejun Heo <tj@kernel.org>2012-08-16 17:21:16 -0400
commit7635d2fd7f0fa63b6ec03050614c314d7139f14a (patch)
tree8d8d0387e6f791ed67ad5d23dfe0fb93a1615337 /kernel/workqueue.c
parente2b6a6d570f070aa90ac00d2d10b1488512f8520 (diff)
workqueue: use system_highpri_wq for unbind_work
To speed cpu down processing up, use system_highpri_wq. As scheduling priority of workers on it is higher than system_wq and it is not contended by other normal works on this cpu, work on it is processed faster than system_wq. tj: CPU up/downs care quite a bit about latency these days. This shouldn't hurt anything and makes sense. Signed-off-by: Joonsoo Kim <js1304@gmail.com> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'kernel/workqueue.c')
-rw-r--r--kernel/workqueue.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 8936761b814a..7da24711038f 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -3680,7 +3680,7 @@ static int __devinit workqueue_cpu_down_callback(struct notifier_block *nfb,
3680 case CPU_DOWN_PREPARE: 3680 case CPU_DOWN_PREPARE:
3681 /* unbinding should happen on the local CPU */ 3681 /* unbinding should happen on the local CPU */
3682 INIT_WORK_ONSTACK(&unbind_work, gcwq_unbind_fn); 3682 INIT_WORK_ONSTACK(&unbind_work, gcwq_unbind_fn);
3683 schedule_work_on(cpu, &unbind_work); 3683 queue_work_on(cpu, system_highpri_wq, &unbind_work);
3684 flush_work(&unbind_work); 3684 flush_work(&unbind_work);
3685 break; 3685 break;
3686 } 3686 }