workqueue: use system_highpri_wq for unbind_work
authorJoonsoo Kim <js1304@gmail.com>
Wed, 15 Aug 2012 14:25:41 +0000 (23:25 +0900)
committerTejun Heo <tj@kernel.org>
Thu, 16 Aug 2012 21:21:16 +0000 (14:21 -0700)
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>
kernel/workqueue.c

index 8936761b814a6b41297bd99273f3b5a5fd459ecb..7da24711038fa7035d8383b9c96f52c9496e157b 100644 (file)
@@ -3680,7 +3680,7 @@ static int __devinit workqueue_cpu_down_callback(struct notifier_block *nfb,
        case CPU_DOWN_PREPARE:
                /* unbinding should happen on the local CPU */
                INIT_WORK_ONSTACK(&unbind_work, gcwq_unbind_fn);
-               schedule_work_on(cpu, &unbind_work);
+               queue_work_on(cpu, system_highpri_wq, &unbind_work);
                flush_work(&unbind_work);
                break;
        }