diff options
author | Tejun Heo <tj@kernel.org> | 2011-02-08 04:39:03 -0500 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2011-02-09 03:37:49 -0500 |
commit | 4149efb22da66e326fc48baf80d628834509f7f0 (patch) | |
tree | f55c97e3678eaff010a36b97bcde0e9d2294ccb4 /kernel | |
parent | c534a107e8fe446202b0fab102abc015c56c0317 (diff) |
workqueue: add system_freezeable_wq
Add system wide freezeable workqueue.
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/workqueue.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 11869faa6819..28f8bd08f0e7 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c | |||
@@ -249,10 +249,12 @@ struct workqueue_struct *system_wq __read_mostly; | |||
249 | struct workqueue_struct *system_long_wq __read_mostly; | 249 | struct workqueue_struct *system_long_wq __read_mostly; |
250 | struct workqueue_struct *system_nrt_wq __read_mostly; | 250 | struct workqueue_struct *system_nrt_wq __read_mostly; |
251 | struct workqueue_struct *system_unbound_wq __read_mostly; | 251 | struct workqueue_struct *system_unbound_wq __read_mostly; |
252 | struct workqueue_struct *system_freezeable_wq __read_mostly; | ||
252 | EXPORT_SYMBOL_GPL(system_wq); | 253 | EXPORT_SYMBOL_GPL(system_wq); |
253 | EXPORT_SYMBOL_GPL(system_long_wq); | 254 | EXPORT_SYMBOL_GPL(system_long_wq); |
254 | EXPORT_SYMBOL_GPL(system_nrt_wq); | 255 | EXPORT_SYMBOL_GPL(system_nrt_wq); |
255 | EXPORT_SYMBOL_GPL(system_unbound_wq); | 256 | EXPORT_SYMBOL_GPL(system_unbound_wq); |
257 | EXPORT_SYMBOL_GPL(system_freezeable_wq); | ||
256 | 258 | ||
257 | #define CREATE_TRACE_POINTS | 259 | #define CREATE_TRACE_POINTS |
258 | #include <trace/events/workqueue.h> | 260 | #include <trace/events/workqueue.h> |
@@ -3764,8 +3766,10 @@ static int __init init_workqueues(void) | |||
3764 | system_nrt_wq = alloc_workqueue("events_nrt", WQ_NON_REENTRANT, 0); | 3766 | system_nrt_wq = alloc_workqueue("events_nrt", WQ_NON_REENTRANT, 0); |
3765 | system_unbound_wq = alloc_workqueue("events_unbound", WQ_UNBOUND, | 3767 | system_unbound_wq = alloc_workqueue("events_unbound", WQ_UNBOUND, |
3766 | WQ_UNBOUND_MAX_ACTIVE); | 3768 | WQ_UNBOUND_MAX_ACTIVE); |
3769 | system_freezeable_wq = alloc_workqueue("events_freezeable", | ||
3770 | WQ_FREEZEABLE, 0); | ||
3767 | BUG_ON(!system_wq || !system_long_wq || !system_nrt_wq || | 3771 | BUG_ON(!system_wq || !system_long_wq || !system_nrt_wq || |
3768 | !system_unbound_wq); | 3772 | !system_unbound_wq || !system_freezeable_wq); |
3769 | return 0; | 3773 | return 0; |
3770 | } | 3774 | } |
3771 | early_initcall(init_workqueues); | 3775 | early_initcall(init_workqueues); |