From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757428AbbCPRZh (ORCPT ); Mon, 16 Mar 2015 13:25:37 -0400 Received: from mail-wi0-f173.google.com ([209.85.212.173]:37218 "EHLO mail-wi0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757260AbbCPRZg (ORCPT ); Mon, 16 Mar 2015 13:25:36 -0400 Date: Mon, 16 Mar 2015 18:25:27 +0100 From: Frederic Weisbecker To: Kevin Hilman Cc: Lai Jiangshan , linux-kernel@vger.kernel.org, Christoph Lameter , Mike Galbraith , "Paul E. McKenney" , Tejun Heo , Viresh Kumar Subject: Re: [PATCH 3/4] workqueue: Create low-level unbound workqueues cpumask Message-ID: <20150316172514.GD4054@lerouge> References: <1426136412-7594-1-git-send-email-laijs@cn.fujitsu.com> <1426136412-7594-4-git-send-email-laijs@cn.fujitsu.com> <7h4mpopie6.fsf@deeprootsystems.com> <5503E8D1.2030909@cn.fujitsu.com> <7hlhiwooib.fsf@deeprootsystems.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <7hlhiwooib.fsf@deeprootsystems.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 On Mon, Mar 16, 2015 at 10:12:12AM -0700, Kevin Hilman wrote: > Lai Jiangshan writes: > > > On 03/14/2015 07:49 AM, Kevin Hilman wrote: > >> Lai Jiangshan writes: > >> > >>> From: Frederic Weisbecker > >>> > >>> Create a cpumask that limit the affinity of all unbound workqueues. > >>> This cpumask is controlled though a file at the root of the workqueue > >>> sysfs directory. > >>> > >>> It works on a lower-level than the per WQ_SYSFS workqueues cpumask files > >>> such that the effective cpumask applied for a given unbound workqueue is > >>> the intersection of /sys/devices/virtual/workqueue/$WORKQUEUE/cpumask and > >>> the new /sys/devices/virtual/workqueue/cpumask_unbounds file. > >>> > >>> This patch implements the basic infrastructure and the read interface. > >>> cpumask_unbounds is initially set to cpu_possible_mask. > >>> > >>> Cc: Christoph Lameter > >>> Cc: Kevin Hilman > >>> Cc: Lai Jiangshan > >>> Cc: Mike Galbraith > >>> Cc: Paul E. McKenney > >>> Cc: Tejun Heo > >>> Cc: Viresh Kumar > >>> Signed-off-by: Frederic Weisbecker > >>> Signed-off-by: Lai Jiangshan > >> > >> [...] > >> > >>> @@ -5094,6 +5116,9 @@ static int __init init_workqueues(void) > >>> > >>> WARN_ON(__alignof__(struct pool_workqueue) < __alignof__(long long)); > >>> > >>> + BUG_ON(!alloc_cpumask_var(&wq_unbound_cpumask, GFP_KERNEL)); > >>> + cpumask_copy(wq_unbound_cpumask, cpu_possible_mask); > >>> + > >> > >> As I mentioned in an earlier discussion[1], I still think this could > >> default too the housekeeping CPUs in the NO_HZ_FULL case: > >> > >> #ifdef CONFIG_NO_HZ_FULL > >> cpumask_complement(wq_unbound_cpumask, tick_nohz_full_mask); > > > > > > No, the default/booted wq_unbound_cpumask should be cpu_possible_mask. > > > > Even for NO_HZ_FULL? > > IMO, for NO_HZ_FULL, we want the unbound workqueues to be on the > housekeeping CPU(s). If it should be the default on NO_HZ_FULL, maybe we should do this from the tick nohz code. Some late or fs initcall that will do the workqueue affinity, timer affinity, etc...