diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/workqueue.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index d3444169e261..c20cfbe89194 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c | |||
| @@ -2048,10 +2048,13 @@ __acquires(&pool->lock) | |||
| 2048 | worker_set_flags(worker, WORKER_CPU_INTENSIVE, true); | 2048 | worker_set_flags(worker, WORKER_CPU_INTENSIVE, true); |
| 2049 | 2049 | ||
| 2050 | /* | 2050 | /* |
| 2051 | * Unbound pool isn't concurrency managed and work items should be | 2051 | * Wake up another worker if necessary. The condition is always |
| 2052 | * executed ASAP. Wake up another worker if necessary. | 2052 | * false for normal per-cpu workers since nr_running would always |
| 2053 | * be >= 1 at this point. This is used to chain execution of the | ||
| 2054 | * pending work items for WORKER_NOT_RUNNING workers such as the | ||
| 2055 | * UNBOUND ones. | ||
| 2053 | */ | 2056 | */ |
| 2054 | if ((worker->flags & WORKER_UNBOUND) && need_more_worker(pool)) | 2057 | if (need_more_worker(pool)) |
| 2055 | wake_up_worker(pool); | 2058 | wake_up_worker(pool); |
| 2056 | 2059 | ||
| 2057 | /* | 2060 | /* |
