]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
workqueue: explain for_each_*cwq_cpu() iterators
authorTejun Heo <tj@kernel.org>
Sun, 1 Aug 2010 09:50:12 +0000 (11:50 +0200)
committerTejun Heo <tj@kernel.org>
Sun, 1 Aug 2010 09:50:12 +0000 (11:50 +0200)
for_each_*cwq_cpu() are similar to regular CPU iterators except that
it also considers the pseudo CPU number used for unbound workqueues.
Explain them.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
kernel/workqueue.c

index e5cb7faac58ea83d29b25c35e35e8f260296c105..1105c474073ae02b79e634c5e3fc52b83130d1ee 100644 (file)
@@ -271,6 +271,19 @@ static inline int __next_wq_cpu(int cpu, const struct cpumask *mask,
        return __next_gcwq_cpu(cpu, mask, !(wq->flags & WQ_UNBOUND) ? 1 : 2);
 }
 
+/*
+ * CPU iterators
+ *
+ * An extra gcwq is defined for an invalid cpu number
+ * (WORK_CPU_UNBOUND) to host workqueues which are not bound to any
+ * specific CPU.  The following iterators are similar to
+ * for_each_*_cpu() iterators but also considers the unbound gcwq.
+ *
+ * for_each_gcwq_cpu()         : possible CPUs + WORK_CPU_UNBOUND
+ * for_each_online_gcwq_cpu()  : online CPUs + WORK_CPU_UNBOUND
+ * for_each_cwq_cpu()          : possible CPUs for bound workqueues,
+ *                               WORK_CPU_UNBOUND for unbound workqueues
+ */
 #define for_each_gcwq_cpu(cpu)                                         \
        for ((cpu) = __next_gcwq_cpu(-1, cpu_possible_mask, 3);         \
             (cpu) < WORK_CPU_NONE;                                     \