From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752725AbbCaTht (ORCPT ); Tue, 31 Mar 2015 15:37:49 -0400 Received: from mail-qc0-f170.google.com ([209.85.216.170]:32799 "EHLO mail-qc0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752683AbbCaThs (ORCPT ); Tue, 31 Mar 2015 15:37:48 -0400 Date: Tue, 31 Mar 2015 15:37:45 -0400 From: Tejun Heo To: cmetcalf@ezchip.com Cc: "Peter Zijlstra (Intel)" , Frederic Weisbecker , "Paul E. McKenney" , "Rafael J. Wysocki" , Martin Schwidefsky , linux-kernel@vger.kernel.org Subject: Re: [PATCH] workqueue: avoid nohz_full cores Message-ID: <20150331193745.GH9974@htj.duckdns.org> References: <1427829959-3023-1-git-send-email-cmetcalf@ezchip.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1427829959-3023-1-git-send-email-cmetcalf@ezchip.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, Chris. On Tue, Mar 31, 2015 at 03:25:59PM -0400, cmetcalf@ezchip.com wrote: > From: Chris Metcalf > > When queuing work, we should avoid queuing it on the local cpu if > we are using WORK_CPU_UNBOUND and the local cpu is nohz_full, since > the workqueue will mean a later interrupt of the nohz_full process > that presumably would prefer continuing to have 100% of the core > without interrupts. > > Likewise, remove the nohz_full cores from unbound workqueues. If > all the cores are nohz_full, we leave them in. The problem with this is that workqueue currently doesn't distinguish why work items are queued on per-cpu workqueues. It can't tell whether being bound to local CPU is for correctness or optimization and thus can't break local execution guarantee for anybody. We need to hunt down all the ones which depend on local execution and annotate them with explicit queue_work_on() before being able to do this. Thanks. -- tejun