From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754036AbdHWMSS (ORCPT ); Wed, 23 Aug 2017 08:18:18 -0400 Received: from bombadil.infradead.org ([65.50.211.133]:58197 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753793AbdHWMSQ (ORCPT ); Wed, 23 Aug 2017 08:18:16 -0400 Message-Id: <20170823121432.788461761@infradead.org> User-Agent: quilt/0.63-1 Date: Wed, 23 Aug 2017 13:58:44 +0200 From: Peter Zijlstra To: mingo@kernel.org Cc: byungchul.park@lge.com, tj@kernel.org, boqun.feng@gmail.com, david@fromorbit.com, johannes@sipsolutions.net, oleg@redhat.com, linux-kernel@vger.kernel.org, peterz@infradead.org Subject: [PATCH 1/4] workqueue: Use TASK_IDLE References: <20170823115843.662056844@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline; filename=peterz-wq-task_idle.patch Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Workqueues don't use signals, it (ab)uses TASK_INTERRUPTIBLE to avoid increasing the loadavg numbers. We've 'recently' introduced TASK_IDLE for this case: 80ed87c8a9ca ("sched/wait: Introduce TASK_NOLOAD and TASK_IDLE") use it. Signed-off-by: Peter Zijlstra (Intel) --- --- 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 *__rescue */ 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