From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752056AbdANLVC (ORCPT ); Sat, 14 Jan 2017 06:21:02 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:51064 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752001AbdANLVA (ORCPT ); Sat, 14 Jan 2017 06:21:00 -0500 Date: Sat, 14 Jan 2017 00:45:30 -0800 From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org Cc: mingo@kernel.org, jiangshanlai@gmail.com, dipankar@in.ibm.com, akpm@linux-foundation.org, mathieu.desnoyers@efficios.com, josh@joshtriplett.org, tglx@linutronix.de, peterz@infradead.org, rostedt@goodmis.org, dhowells@redhat.com, edumazet@google.com, dvhart@linux.intel.com, fweisbec@gmail.com, oleg@redhat.com, bobby.prani@gmail.com Subject: [PATCH RFC v2 tip/core/rcu 0/2] Make RCU synchronous grace periods work throughout boot Reply-To: paulmck@linux.vnet.ibm.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-GCONF: 00 X-Content-Scanned: Fidelis XPS MAILER x-cbid: 17011408-0028-0000-0000-000006C8EA06 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00006430; HX=3.00000240; KW=3.00000007; PH=3.00000004; SC=3.00000199; SDB=6.00807460; UDB=6.00393072; IPR=6.00584799; BA=6.00005055; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00013919; XFM=3.00000011; UTC=2017-01-14 08:45:35 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17011408-0029-0000-0000-000032B696E9 Message-Id: <20170114084530.GA17256@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-01-14_01:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=1 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1612050000 definitions=main-1701140127 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello! This series fixes a regression in v4.9 where code relied on RCU synchronous grace periods working between the time that the scheduler spawned the first task and RCU finished spawning all of its tasks. This series makes RCU able to handle synchronous grace periods throughout boot. Please see the second patch's commit log for more details. The patches are as follows: 1. Remove cond_resched() from Tiny synchronize_sched(), thus allowing Tiny RCU's synchronize_sched() to be used throughout boot without annoying splats. 2. Make RCU's expedited synchronous grace periods work throughout boot, and promote non-expedited grace periods to expedited grace periods during boot from the time that the scheduler spawns the first task until after RCU has spawned all of its kthreads. Changes from v1: o Added the fix for Tiny RCU. o Applied Borislav Petkov's feedback for Tree RCU. o Added a bunch of Tested-by lines. Thanx, Paul ------------------------------------------------------------------------ include/linux/rcupdate.h | 4 +++ kernel/rcu/rcu.h | 1 kernel/rcu/tiny.c | 4 --- kernel/rcu/tiny_plugin.h | 9 ++++++-- kernel/rcu/tree.c | 33 ++++++++++++++++++----------- kernel/rcu/tree_exp.h | 52 +++++++++++++++++++++++++++++++++++++---------- kernel/rcu/tree_plugin.h | 2 - kernel/rcu/update.c | 38 +++++++++++++++++++++++++++------- 8 files changed, 104 insertions(+), 39 deletions(-)