From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932464AbdHVJm5 (ORCPT ); Tue, 22 Aug 2017 05:42:57 -0400 Received: from bombadil.infradead.org ([65.50.211.133]:43195 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932205AbdHVJmz (ORCPT ); Tue, 22 Aug 2017 05:42:55 -0400 Date: Tue, 22 Aug 2017 11:42:51 +0200 From: Peter Zijlstra To: Byungchul Park Cc: Dave Chinner , mingo@kernel.org, linux-kernel@vger.kernel.org, kernel-team@lge.com, Arnaldo Carvalho de Melo , Tejun Heo , Boqun Feng Subject: Re: [PATCH v3 1/3] lockdep: Make LOCKDEP_CROSSRELEASE configs all part of PROVE_LOCKING Message-ID: <20170822094251.si4c3ixzxdphtfhe@hirez.programming.kicks-ass.net> References: <1502960261-16206-1-git-send-email-byungchul.park@lge.com> <20170821154600.asyzqs2zg6w6o4pg@hirez.programming.kicks-ass.net> <20170822054603.GT10621@dastard> <20170822090603.vufl5ncoequ5ag6x@hirez.programming.kicks-ass.net> <20170822092236.GI20323@X58A-UD3R> <20170822093703.vuuxvxaytna5im33@hirez.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170822093703.vuuxvxaytna5im33@hirez.programming.kicks-ass.net> User-Agent: NeoMutt/20170609 (1.8.3) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org TJ, afaict the workqueue stuff doesn't in fact use signals, right? Should we do the below? That is, the only reason it appears to use INTERRUPTIBLE is to avoid increasing the loadavg, and we've introduced IDLE for that a while back: 80ed87c8a9ca ("sched/wait: Introduce TASK_NOLOAD and TASK_IDLE") --- diff --git a/kernel/workqueue.c b/kernel/workqueue.c index f128b3becfe1..737a079480e8 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -2249,7 +2249,7 @@ static int worker_thread(void *__worker) * event. */ worker_enter_idle(worker); - __set_current_state(TASK_INTERRUPTIBLE); + __set_current_state(TASK_IDLE); spin_unlock_irq(&pool->lock); schedule(); goto woke_up; @@ -2291,7 +2291,7 @@ static int rescuer_thread(void *__rescuer) */ rescuer->task->flags |= PF_WQ_WORKER; repeat: - set_current_state(TASK_INTERRUPTIBLE); + set_current_state(TASK_IDLE); /* * By the time the rescuer is requested to stop, the workqueue