Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758829AbeAIPUi (ORCPT + 1 other); Tue, 9 Jan 2018 10:20:38 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:53536 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751263AbeAIPUg (ORCPT ); Tue, 9 Jan 2018 10:20:36 -0500 Date: Tue, 9 Jan 2018 07:21:12 -0800 From: "Paul E. McKenney" To: Tejun Heo Cc: Prateek Sood , Peter Zijlstra , avagin@gmail.com, mingo@kernel.org, linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, sramana@codeaurora.org Subject: Re: [PATCH] cgroup/cpuset: fix circular locking dependency Reply-To: paulmck@linux.vnet.ibm.com References: <9843d982-d201-8702-2e4e-0541a4d96b53@codeaurora.org> <20180102161656.GD3668920@devbig577.frc2.facebook.com> <20180102174408.GM7829@linux.vnet.ibm.com> <20180102180119.GA1355@linux.vnet.ibm.com> <20180108122823.GL3668920@devbig577.frc2.facebook.com> <20180108225238.GN9671@linux.vnet.ibm.com> <20180109003127.GA30224@linux.vnet.ibm.com> <20180109034211.GC3668920@devbig577.frc2.facebook.com> <20180109042016.GR9671@linux.vnet.ibm.com> <20180109134448.GE3668920@devbig577.frc2.facebook.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180109134448.GE3668920@devbig577.frc2.facebook.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-GCONF: 00 x-cbid: 18010915-0008-0000-0000-000002BC8DF1 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00008347; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000245; SDB=6.00972537; UDB=6.00492699; IPR=6.00752487; BA=6.00005768; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00018940; XFM=3.00000015; UTC=2018-01-09 15:20:31 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18010915-0009-0000-0000-000037D98318 Message-Id: <20180109152112.GT9671@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2018-01-09_09:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1709140000 definitions=main-1801090216 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: On Tue, Jan 09, 2018 at 05:44:48AM -0800, Tejun Heo wrote: > Hello, Paul. > > On Mon, Jan 08, 2018 at 08:20:16PM -0800, Paul E. McKenney wrote: > > OK, so I can put WQ_MEM_RECLAIM on the early boot creation of RCU's > > workqueue_struct as shown below, right? > > Yes, this looks good to me. Just one question. > > > +struct workqueue_struct *rcu_gp_workqueue; > > + > > void __init rcu_init(void) > > { > > int cpu; > > @@ -4298,6 +4300,10 @@ void __init rcu_init(void) > > rcu_cpu_starting(cpu); > > rcutree_online_cpu(cpu); > > } > > + > > + /* Create workqueue for expedited GPs and for Tree SRCU. */ > > + rcu_gp_workqueue = alloc_workqueue("rcu_gp", WQ_MEM_RECLAIM, 0); > > + WARN_ON(!rcu_gp_workqueue); > > The code was previously using both system_power_efficient_wq and > system_workqueue (for the expedited path). I guess the options were > either using two workqueues or dropping POWER_EFFICIENT. I have no > idea how big an impact this will make or whether it'd even be > noticeable but maybe it'd be worthwhile to mention that in the > description? Good point! How about if I change the last paragraph of the commit log to read as follows? Thanx, Paul ------------------------------------------------------------------------ This commit also causes SRCU to use this new RCU-specific workqueue_struct. Note that SRCU's use of workqueues never blocks them waiting for readers, so this should be safe from a forward-progress viewpoint. Note that this moves SRCU from system_power_efficient_wq to a normal workqueue. In the unlikely event that this results in measurable degradation, a separate power-efficient workqueue will be creates for SRCU.