From patchwork Tue Feb 8 09:41:55 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tejun Heo X-Patchwork-Id: 540051 Received: from smtp1.linux-foundation.org (smtp1.linux-foundation.org [140.211.169.13]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id p189hcl7029542 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Tue, 8 Feb 2011 09:43:59 GMT Received: from daredevil.linux-foundation.org (localhost [127.0.0.1]) by smtp1.linux-foundation.org (8.14.2/8.13.5/Debian-3ubuntu1.1) with ESMTP id p189g4RF027928; Tue, 8 Feb 2011 01:42:04 -0800 Received: from mail-fx0-f47.google.com (mail-fx0-f47.google.com [209.85.161.47]) by smtp1.linux-foundation.org (8.14.2/8.13.5/Debian-3ubuntu1.1) with ESMTP id p189fxYQ027912 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=FAIL) for ; Tue, 8 Feb 2011 01:42:01 -0800 Received: by fxm17 with SMTP id 17so5829218fxm.6 for ; Tue, 08 Feb 2011 01:41:59 -0800 (PST) Received: by 10.223.96.199 with SMTP id i7mr6614317fan.101.1297158118903; Tue, 08 Feb 2011 01:41:58 -0800 (PST) Received: from htj.dyndns.org ([130.75.117.88]) by mx.google.com with ESMTPS id b7sm1609747faa.42.2011.02.08.01.41.57 (version=SSLv3 cipher=RC4-MD5); Tue, 08 Feb 2011 01:41:58 -0800 (PST) Date: Tue, 8 Feb 2011 10:41:55 +0100 From: Tejun Heo To: "Rafael J. Wysocki" , Dmitry Torokhov Message-ID: <20110208094155.GB6558@htj.dyndns.org> References: <201102080029.57195.rjw@sisk.pl> <20110208044712.GA906@core.coreip.homeip.net> <201102081020.25646.rjw@sisk.pl> <20110208093212.GA6558@htj.dyndns.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20110208093212.GA6558@htj.dyndns.org> User-Agent: Mutt/1.5.20 (2009-06-14) Received-SPF: pass (localhost is always allowed.) X-Spam-Status: No, hits=-4.283 required=5 tests=AWL, BAYES_00, OSDL_HEADER_SPF_PASS, OSDL_HEADER_SUBJECT_BRACKETED, SARE_SUB_OBFU_Q0 X-Spam-Checker-Version: SpamAssassin 3.2.4-osdl_revision__1.47__ X-MIMEDefang-Filter: lf$Revision: 1.188 $ X-Scanned-By: MIMEDefang 2.63 on 140.211.169.21 Cc: Len Brown , Linux PM mailing list , LKML , ACPI Devel Mailing List Subject: [linux-pm] [PATCH wq#for-2.6.39] workqueue: add system_freezeable_wq X-BeenThere: linux-pm@lists.linux-foundation.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: Linux power management List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-pm-bounces@lists.linux-foundation.org Errors-To: linux-pm-bounces@lists.linux-foundation.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Tue, 08 Feb 2011 09:43:59 +0000 (UTC) diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index 1ac1158..de6a755 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h @@ -286,11 +286,15 @@ enum { * any specific CPU, not concurrency managed, and all queued works are * executed immediately as long as max_active limit is not reached and * resources are available. + * + * system_freezeable_wq is equivalent to system_wq except that it's + * freezeable. */ extern struct workqueue_struct *system_wq; extern struct workqueue_struct *system_long_wq; extern struct workqueue_struct *system_nrt_wq; extern struct workqueue_struct *system_unbound_wq; +extern struct workqueue_struct *system_freezeable_wq; extern struct workqueue_struct * __alloc_workqueue_key(const char *name, unsigned int flags, int max_active, diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 11869fa..2b8de0c 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -3764,8 +3764,10 @@ static int __init init_workqueues(void) system_nrt_wq = alloc_workqueue("events_nrt", WQ_NON_REENTRANT, 0); system_unbound_wq = alloc_workqueue("events_unbound", WQ_UNBOUND, WQ_UNBOUND_MAX_ACTIVE); + system_freezeable_wq = alloc_workqueue("events_freezeable", + WQ_FREEZEABLE, 0); BUG_ON(!system_wq || !system_long_wq || !system_nrt_wq || - !system_unbound_wq); + !system_unbound_wq || !system_freezeable_wq); return 0; } early_initcall(init_workqueues);