Thread (31 messages) 31 messages, 7 authors, 2013-03-30

Re: [PATCH V3 3/7] workqueue: Add helpers to schedule work on any cpu

From: Viresh Kumar <viresh.kumar@linaro.org>
Date: 2013-03-19 13:23:35
Also in: lkml
Subsystem: the rest, workqueue · Maintainers: Linus Torvalds, Tejun Heo

On 19 March 2013 10:45, Viresh Kumar [off-list ref] wrote:
On 18 March 2013 20:53, Viresh Kumar [off-list ref] wrote:
quoted
queue_work() queues work on current cpu. This may wake up an idle CPU, which is
actually not required.

Some of these works can be processed by any CPU and so we must select a non-idle
CPU here. The initial idea was to modify implementation of queue_work(), but
that may end up breaking lots of kernel code that would be a nightmare to debug.

So, we finalized to adding new workqueue interfaces, for works that don't depend
on a cpu to execute them.
Another fixup:

commit 8753c6d936faa6e3233cbf44a55913d05de05683
Author: Viresh Kumar [off-list ref]
Date:   Tue Mar 19 18:50:59 2013 +0530

    fixup! workqueue: Add helpers to schedule work on any cpu
---
 kernel/workqueue.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 68daf50..4e023ab 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -1242,7 +1242,7 @@ retry:
        if (!(wq->flags & WQ_UNBOUND)) {
                if (cpu == WORK_CPU_UNBOUND) {
                        if (on_any_cpu)
-                               cpu = sched_select_non_idle_cpu(0);
+                               cpu = sched_select_non_idle_cpu();
                        else
                                cpu = raw_smp_processor_id();
                }
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help