diff options
| author | Andrew Morton <akpm@osdl.org> | 2004-03-11 16:18:00 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-03-11 16:18:00 -0800 |
| commit | 6551f0aa45b999eb00d412c8aec4f47084d35f56 (patch) | |
| tree | b6718c4774921a17d81e755109ff60f89ac7b886 /kernel/workqueue.c | |
| parent | 127419b166cc6653900333f1826b5b47e6f18f2c (diff) | |
[PATCH] current_is_keventd() speedup
From: Srivatsa Vaddagiri <vatsa@in.ibm.com>
current_is_keventd() doesn't need to search across all the CPUs to identify
itself.
Diffstat (limited to 'kernel/workqueue.c')
| -rw-r--r-- | kernel/workqueue.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index eee885ccf539..2e94fd93abe6 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -333,16 +333,17 @@ int keventd_up(void) int current_is_keventd(void) { struct cpu_workqueue_struct *cwq; - int cpu; + int cpu = smp_processor_id(); /* preempt-safe: keventd is per-cpu */ + int ret = 0; BUG_ON(!keventd_wq); - for_each_cpu(cpu) { - cwq = keventd_wq->cpu_wq + cpu; - if (current == cwq->thread) - return 1; - } - return 0; + cwq = keventd_wq->cpu_wq + cpu; + if (current == cwq->thread) + ret = 1; + + return ret; + } void init_workqueues(void) |
