From patchwork Mon Jul 17 18:03:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 121494 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1272720vqt; Mon, 17 Jul 2023 11:20:49 -0700 (PDT) X-Google-Smtp-Source: APBJJlFtxE7tGLo3nz9E9yyakmzz3NozyfYjKUHK2JEaCLL7dr0bDpCR4BI1/qdH862zK34A8feb X-Received: by 2002:a17:902:ea11:b0:1b9:d34d:bf6d with SMTP id s17-20020a170902ea1100b001b9d34dbf6dmr13441320plg.52.1689618049001; Mon, 17 Jul 2023 11:20:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689618048; cv=none; d=google.com; s=arc-20160816; b=YLEBsoihpvCQ4Mebv4NTGYOcmv0OzXgwN+bfl2Unvu8l8pyCuhg+FX0TfDY+ahvtAc sWcl7dJsLM0svFHjaJYZNZ2VpOf8AmOdfSBxYHwG1h4YKMofVq7BCbvYyFNqoC2NYGEW UJoFK5GRXYDTRiFanTJskjJi5rTasXK+8QIfIhdDK2hJ5B1ymbKZGuiLfZXTapYjgR+M /GZ3j24x4s4vRm4v8FnUdfZ35S9ZJ8scp7rvBye6xR+xv9F3EQ8sveS2BVt8Gc01zvT8 go+e+0oxegn65Os/370O5Scp9vJHwIcn0MkBwtNoYJ0Vd+vyrvKoGXVTbNxIQT/47RUZ Ramw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Dhg+Ojp1j2kdZyTvbQGkMRf0IPfl7a09S1ySN87ZUrs=; fh=Ag0RbRk3LxdpQ9OdMLAf8hbnmFe6FOAHRGAvgVTwgEc=; b=j6jqrGzoFcvp9ybQx8UhRI1d9IxepxJb1uKy5OqeXdmRVFhAiaMqYTax1sfPUzzN2k nFzKHvvMGfB4Q3/Glyq6OCidktF5lNWUeF4DBLYTSr8jhePYdK4XzYBYTMBJ2QwX0c0G r3YDasJoAk7nZZ2UdaDcPxoU7jDwEdNqUZaY0CU1MxXoAwSZoQA5A2bYH+qtjED8UhjQ pgAqmql2QBneJXysQtp8riBxQPgzlzVExVx5HDavKWH5SHgYtnUwvJ5zjegQ0qeXSm9j TxBk1ILRSjzot80bZyMkpOXS4FES5NmmP5xg9QFK41FdunsMutsy2o48L7vWapg5euNP yRig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=S0RMFCjk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id jz14-20020a170903430e00b001b231cb6f22si222629plb.111.2023.07.17.11.20.33; Mon, 17 Jul 2023 11:20:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=S0RMFCjk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230013AbjGQSDX (ORCPT + 99 others); Mon, 17 Jul 2023 14:03:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34554 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229868AbjGQSDU (ORCPT ); Mon, 17 Jul 2023 14:03:20 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 86C8BB3; Mon, 17 Jul 2023 11:03:19 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 1B95C61063; Mon, 17 Jul 2023 18:03:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7E373C433C8; Mon, 17 Jul 2023 18:03:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689616998; bh=Ll8sW1RjttvaLOWSpYGmiHDsZNfDqJfD+od6jxaPQrA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=S0RMFCjkONoOuMxS9wbNLk3KMgyDCBwGCX+WPfnD+5EYKbt6/ucnLgi5R8siUgpll W/6Y3RIP1LGm04ZLXoCHRtcLXM4ICJ9Nwr8100cyoH8CAnlUZzsTyx929Gj1WGg42r 4IJUwSiBKfnw+X8IebGMKsl0zMKY8h4to7O1yWmVbwJevFbhel1AuM2yVi9BXWQoQ3 pB3/YRFMK0wjQj3VEL0v2o9LuvpQ9SBrielyTypx3CpivMgW97EJeI5DNm1GLokb1v I0ond5XpzKMLCkuOYM0aghvvuqvmT0Udt/q33jKPHxmkxRXTV0riv1U2ji6c7OTC66 A/LpxD4wRu66A== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id 363F1CE03F1; Mon, 17 Jul 2023 11:03:18 -0700 (PDT) From: "Paul E. McKenney" To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com, rostedt@goodmis.org, "Paul E. McKenney" Subject: [PATCH rcu 1/6] rcu: Update synchronize_rcu_mult() comment for call_rcu_hurry() Date: Mon, 17 Jul 2023 11:03:12 -0700 Message-Id: <20230717180317.1097590-1-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <6127192c-da9b-4599-9738-6e8f92e6c75c@paulmck-laptop> References: <6127192c-da9b-4599-9738-6e8f92e6c75c@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771692934982389742 X-GMAIL-MSGID: 1771692934982389742 Those who have worked with RCU for some time will naturally think in terms of the long-standing call_rcu() API rather than the much newer call_rcu_hurry() API. But it is call_rcu_hurry() that you should normally pass to synchronize_rcu_mult(). This commit therefore updates the header comment to point this out. Signed-off-by: Paul E. McKenney Reviewed-by: Joel Fernandes (Google) --- include/linux/rcupdate_wait.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/linux/rcupdate_wait.h b/include/linux/rcupdate_wait.h index 699b938358bf..5e0f74f2f8ca 100644 --- a/include/linux/rcupdate_wait.h +++ b/include/linux/rcupdate_wait.h @@ -42,6 +42,11 @@ do { \ * call_srcu() function, with this wrapper supplying the pointer to the * corresponding srcu_struct. * + * Note that call_rcu_hurry() should be used instead of call_rcu() + * because in kernels built with CONFIG_RCU_LAZY=y the delay between the + * invocation of call_rcu() and that of the corresponding RCU callback + * can be multiple seconds. + * * The first argument tells Tiny RCU's _wait_rcu_gp() not to * bother waiting for RCU. The reason for this is because anywhere * synchronize_rcu_mult() can be called is automatically already a full From patchwork Mon Jul 17 18:03:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 121485 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1265221vqt; Mon, 17 Jul 2023 11:06:04 -0700 (PDT) X-Google-Smtp-Source: APBJJlFF9oZiI375SqeM07kkQKOe6JrVwy0vrtqLxYwM1Z659TV09fBmKftjJcXYfyP+Aj9wH7Uw X-Received: by 2002:a05:6402:148f:b0:51d:ad30:5ed7 with SMTP id e15-20020a056402148f00b0051dad305ed7mr12150066edv.35.1689617164281; Mon, 17 Jul 2023 11:06:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689617164; cv=none; d=google.com; s=arc-20160816; b=d7PGZEC+NJkz8oSQj2XiYwDRSrINAwnT7W5DTS0PBSS1WzBEq8s60LKUSP0tsbLrOy VODmFmlC2VXFdL4IAWqbWA+7vsUlA121j8skzuCL4VASN2OLuKg2183iCIvnNvAiq+z5 ZIBe2iYNQ7ulcveLNjmLiyucptep7tQpo/wTG4kjDQjzlYC2g/XBwnbkXYBvbOQJfPf+ ZB0DDe85tQX0yR/lC55T3MA5kRlqLC/Zd1svr8z/XgfgNQVxkcoaZwAVcU1jVl3ofu/8 9XnjxMVYE/XNdjqLspaz81cmupUR6hglQNsYBMVl1xJGoDpzOB3azm+U5JOIMX8FKDlQ Y/7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=YBhbFgvWccAsO8UK38/zHU3o5sdGkHltgNAvZ4ydkDA=; fh=HuwRwnYSCQnYXULmC2tjM9sJua2RazSM7XkJh7CfOL0=; b=cJ2KfhblVPNvSOmaouetIHQUQOHNZmxhlc6O3ALWSbY5uBcuuGCulkQg38y7P6NMEl +4S0HCLs/4w4B1sx+Zl8TtYNUbBtT3kyYIZ/gAxD5gpK7EE9STpiDYLO7JpXa0CaP310 TaFEinpGqpx21+lKVMzXrnl9GgNfsLO1jvxCzqery7WG/DBZ5xldLemhKFKaLXJUQvDQ Jg+/bUfOq2ylfABiRC6oLdykWkarCSwumQlvqSEmQXp8uzN7oKaVj8DoIeFVohxSuGSs dt6wRUQ6QBgxKVxWKDhy3BWPmABx+NLHVG04mlTQvAPY0kAFrI6UvEl7ZcjemOTB3FXw s8vw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="RA/y3TFU"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id o2-20020aa7c502000000b0052160968facsi6012199edq.414.2023.07.17.11.05.40; Mon, 17 Jul 2023 11:06:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="RA/y3TFU"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229868AbjGQSD0 (ORCPT + 99 others); Mon, 17 Jul 2023 14:03:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34556 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229562AbjGQSDV (ORCPT ); Mon, 17 Jul 2023 14:03:21 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BD4C7E4C; Mon, 17 Jul 2023 11:03:19 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 2D9C16119D; Mon, 17 Jul 2023 18:03:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8E093C433C9; Mon, 17 Jul 2023 18:03:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689616998; bh=v7j+4/RDCywUwH0JVY5YSjpILugIRR8+kpY9IyawFFE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RA/y3TFUBbF+jj4qXI5cAWvGTAEUWF8bE2wU5hgIC3hnyJaC1899+YYO0wMnVFP96 dG2kZN61Uzgx8U4QpAByTA4JhEdt9K9ZEfBGar8/r6gc5n9jDFCSmwoU3dILafVC6X IStR1cWC30coigyp2eW1S9B62ajApXZ7zT+pvpxbCR/NOcKQ23Qvfmq3lNbrh2R+U3 Nh3JGGIbwnkdChC5uNZU+oggLbR3SkhwX7lJdpe0pvBjHc/qO3607gZ5VGaEbsX2jR 19bTlHkQ6XrOKvo6N+HXoRGzl1bj4QKpbO0rS4tjotG/UlU0c1lWooxQkCmnwz1Azh 1A1+N8q6CchvQ== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id 3A439CE04CD; Mon, 17 Jul 2023 11:03:18 -0700 (PDT) From: "Paul E. McKenney" To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com, rostedt@goodmis.org, "Paul E. McKenney" , Masami Hiramatsu Subject: [PATCH rcu 2/6] rcu: Clarify rcu_is_watching() kernel-doc comment Date: Mon, 17 Jul 2023 11:03:13 -0700 Message-Id: <20230717180317.1097590-2-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <6127192c-da9b-4599-9738-6e8f92e6c75c@paulmck-laptop> References: <6127192c-da9b-4599-9738-6e8f92e6c75c@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771692007155338032 X-GMAIL-MSGID: 1771692007155338032 Make it clear that this function always returns either true or false without other planned failure modes. Reported-by: Masami Hiramatsu Signed-off-by: Paul E. McKenney Reviewed-by: Joel Fernandes (Google) --- kernel/rcu/tree.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 1449cb69a0e0..fae9b4e29c93 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -679,10 +679,14 @@ static void rcu_disable_urgency_upon_qs(struct rcu_data *rdp) /** * rcu_is_watching - see if RCU thinks that the current CPU is not idle * - * Return true if RCU is watching the running CPU, which means that this - * CPU can safely enter RCU read-side critical sections. In other words, - * if the current CPU is not in its idle loop or is in an interrupt or - * NMI handler, return true. + * Return @true if RCU is watching the running CPU and @false otherwise. + * An @true return means that this CPU can safely enter RCU read-side + * critical sections. + * + * More specifically, if the current CPU is not deep within its idle + * loop, return @true. Note that rcu_is_watching() will return @true if + * invoked from an interrupt or NMI handler, even if that interrupt or + * NMI interrupted the CPU while it was deep within its idle loop. * * Make notrace because it can be called by the internal functions of * ftrace, and making this notrace removes unnecessary recursion calls. From patchwork Mon Jul 17 18:03:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 121486 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1265249vqt; Mon, 17 Jul 2023 11:06:08 -0700 (PDT) X-Google-Smtp-Source: APBJJlHOLtA1JRLJgByQ9eTOOoRjE9wrS83RCCtfdZ38Q7HRCKp66ZfY6CjNCxiFn8JPm0YDRpVd X-Received: by 2002:a05:6402:1345:b0:51e:5dbe:db88 with SMTP id y5-20020a056402134500b0051e5dbedb88mr11942762edw.13.1689617167828; Mon, 17 Jul 2023 11:06:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689617167; cv=none; d=google.com; s=arc-20160816; b=Ds5FPkRFt2LrXZbWkwBKqR/WSP2lpo7GM0Y/M+3JKDHAxGpW8S/niijCySmIGZW4zQ Lggu8Yvre8RN9OUk43b943YqMMHSb3Gpsu5x+sH6GniBS9aVZywUoTMiJpYE7lMUKLgC AgvPDqARKpZdsHIaHI92dOLHp5REnYV192uEV9CrwNpGnmFugV6RZlP3ZvNUowqr6ror PAYxWAG84J+L7vXrLSFAKhDqHht3YQAS0iXNNchDp9A8YHRuFXRwWx9aS0oqxAU7e8JY SjOhRkxHKwjzMMUtGzh/CoTNU3Wt2mi/sVmrOqw6JJtnbHJN80afhyXFQPfpiw2IwWzd 5GHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ClT/RgYv+kmUTJygoGiHKa8xPtQCNW7b84hGh5jx7vE=; fh=+/zhiw89pvFPb1HuXCMCZek5SZ/Gz1P6qtGCS81tiaY=; b=NLDMOJ+kXXfJE5p4UWbjfL2D7vLApvpep5YYS5F1xZVGDQYSm3vbr/qGPIzug8Vg5q ei45c1KhvMHqxgTiNZZjgIOSqS/k2rFl0ZfNF6ix2OnkKM0cgUUI1P8NW7MWYWh0ax8j kFkxdJlOlIfhgdaTfQlLSkMatNmdb6o1HTjpC9wzXVtKiqgoWUTMZjvU3SpmpgR2KQ12 PvNW9SwLlFGJdNornDiShGAubh5//S2sE2oI1XzYpgLfqPL2pRNP3CIaNTKhj/S47axe M8XpIc7GLCGy+rnMD7rFfx30c5pPAAKUUKhVca9xT5qD6fuj25G1TOdyWZPx2dHAccd8 bFUw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=K+3yOAwj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e19-20020aa7d7d3000000b0051e3c92a20bsi15394935eds.318.2023.07.17.11.05.43; Mon, 17 Jul 2023 11:06:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=K+3yOAwj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230273AbjGQSD2 (ORCPT + 99 others); Mon, 17 Jul 2023 14:03:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34526 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229819AbjGQSDV (ORCPT ); Mon, 17 Jul 2023 14:03:21 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BCE4A1BE; Mon, 17 Jul 2023 11:03:19 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 44FF7611C6; Mon, 17 Jul 2023 18:03:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9653EC433CA; Mon, 17 Jul 2023 18:03:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689616998; bh=w65onYuj7ePMCkLvjZLbWr2mrrWxblP9v1QgU7VLyv0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=K+3yOAwjLMvwjPlg9dCrC2H0t0nf8sR/shzrFrp+rKAiRP7ALllkz6jIR1V76IbVm 07qhF6IJSI3QXZnULiX9lH0lhN4N0yqIHNoJH+G+DH3FlfeJZOKNdmKdE3lpuSNB0o yjkaPXFPEUPSVz4lqOXjvoLzPKQXLLdMfbddElVJ0d3/7mMCpRiQhzUA4FLJfzzEZZ CDkkg27uaPSs6Hz8lq8mVC5z4EFxGrPrDEYn4SeafPT/7CFABT08KbjhI8lPqQwKld MK2hhI/EzgwfSBJYM9EYVSq1uWc+lom+YwZR20YicE62ZBOZRhkperItRpQdWU79IA KpQpqsZ6/D63g== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id 3CF50CE0806; Mon, 17 Jul 2023 11:03:18 -0700 (PDT) From: "Paul E. McKenney" To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com, rostedt@goodmis.org, "Paul E. McKenney" , Linus Torvalds , atthias Brugger , "Rafael J. Wysocki" , =?utf-8?b?TWljaGHFgiBN?= =?utf-8?b?aXJvc8WCYXc=?= , Dmitry Osipenko , Sachin Sant , Joel Fernandes Subject: [PATCH rcu 3/6] srcu,notifier: Remove #ifdefs in favor of SRCU Tiny srcu_usage Date: Mon, 17 Jul 2023 11:03:14 -0700 Message-Id: <20230717180317.1097590-3-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <6127192c-da9b-4599-9738-6e8f92e6c75c@paulmck-laptop> References: <6127192c-da9b-4599-9738-6e8f92e6c75c@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_FILL_THIS_FORM_SHORT,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771692011374877838 X-GMAIL-MSGID: 1771692011374877838 This commit removes two #ifdef directives from include/linux/notifier.h by causing SRCU Tiny to provide a dummy srcu_usage structure and a dummy __SRCU_USAGE_INIT() macro. Suggested-by: Linus Torvalds Cc: atthias Brugger Cc: "Rafael J. Wysocki" Cc: "Michał Mirosław" Cc: Dmitry Osipenko Cc: Sachin Sant Cc: Joel Fernandes (Google) Signed-off-by: Paul E. McKenney --- include/linux/notifier.h | 11 ----------- include/linux/srcutiny.h | 7 +++++++ 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/include/linux/notifier.h b/include/linux/notifier.h index 86544707236a..45702bdcbceb 100644 --- a/include/linux/notifier.h +++ b/include/linux/notifier.h @@ -73,9 +73,7 @@ struct raw_notifier_head { struct srcu_notifier_head { struct mutex mutex; -#ifdef CONFIG_TREE_SRCU struct srcu_usage srcuu; -#endif struct srcu_struct srcu; struct notifier_block __rcu *head; }; @@ -106,7 +104,6 @@ extern void srcu_init_notifier_head(struct srcu_notifier_head *nh); #define RAW_NOTIFIER_INIT(name) { \ .head = NULL } -#ifdef CONFIG_TREE_SRCU #define SRCU_NOTIFIER_INIT(name, pcpu) \ { \ .mutex = __MUTEX_INITIALIZER(name.mutex), \ @@ -114,14 +111,6 @@ extern void srcu_init_notifier_head(struct srcu_notifier_head *nh); .srcuu = __SRCU_USAGE_INIT(name.srcuu), \ .srcu = __SRCU_STRUCT_INIT(name.srcu, name.srcuu, pcpu), \ } -#else -#define SRCU_NOTIFIER_INIT(name, pcpu) \ - { \ - .mutex = __MUTEX_INITIALIZER(name.mutex), \ - .head = NULL, \ - .srcu = __SRCU_STRUCT_INIT(name.srcu, name.srcuu, pcpu), \ - } -#endif #define ATOMIC_NOTIFIER_HEAD(name) \ struct atomic_notifier_head name = \ diff --git a/include/linux/srcutiny.h b/include/linux/srcutiny.h index ebd72491af99..06ce65518974 100644 --- a/include/linux/srcutiny.h +++ b/include/linux/srcutiny.h @@ -48,6 +48,13 @@ void srcu_drive_gp(struct work_struct *wp); #define DEFINE_STATIC_SRCU(name) \ static struct srcu_struct name = __SRCU_STRUCT_INIT(name, name, name) +// Dummy structure for srcu_notifier_head. +struct srcu_usage { + char srcuu_dummy; +}; + +#define __SRCU_USAGE_INIT(name) { .srcuu_dummy = 0, } + void synchronize_srcu(struct srcu_struct *ssp); /* From patchwork Mon Jul 17 18:03:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 121488 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1265339vqt; Mon, 17 Jul 2023 11:06:18 -0700 (PDT) X-Google-Smtp-Source: APBJJlGsLBXUyOtGyg/PXEgKV3dFQzUZP0wkd8OtFmQNk7z5XiQWVW+3O4r3PZlxIlXfM9nJC2Dv X-Received: by 2002:a17:906:8052:b0:994:2fa9:7444 with SMTP id x18-20020a170906805200b009942fa97444mr10042286ejw.42.1689617178404; Mon, 17 Jul 2023 11:06:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689617178; cv=none; d=google.com; s=arc-20160816; b=BjRN7YOIyf4LUzvaSnTp9fPVg0iL6CeNSLZFOB8lLsj6JLvOA/rCX09CjNt/Zs7Isn KdyIu6/wqu979FW5HvwWQpRx9qfQJVATQiRHtbnLjwPMIoq8f+QpcB+vtiokGGtlZ+Mw 2OO/boWrFNMGD8yVHfiK1DUywHyN02TocY8osvHbGgh/U7CgS2BYhUSaCkEh8I8gv+G6 O4Hhpz23SQkQJlZqGqONbjjYevoJ61cUlKvhsqVcBLzwm8eh+tLyvoHBXWx9hEVZ2xcI dmxSmI0z2JIldDpt+SslLmLCj2VPrl4irbiBJXd5MRXL/eO6OfeROIrRHYvD6QbaLsO/ a32w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=kx2b/2wxInA46SVTvdJ23jRsNWo1WrQcP55geTW8uBc=; fh=Ag0RbRk3LxdpQ9OdMLAf8hbnmFe6FOAHRGAvgVTwgEc=; b=G7uL1lEkkx+h+bN2YktfujYkZ5lBrJtKmNPbXCVldHJDC8LtmvXII2M5DlyHVZwRsQ vjt3AhE5qNBIeDAZ7Wbanb+1t01wFGq56cMFOjuC8tZo2cGextlwNjFmt7yPFwIXH1i4 aGvr+4Z3LCxsk25kT9Hslk1nfU/Je1XMjbWjxhr9cTMfvd7Ipvs5PLwJ2s45eCQA8TT9 ccQG4vYbfpxvkEA+YNMXBanIC+tY5kVmo3Ql3JQEleibTxeqPl71hINIC2i4EGs4SNa3 I6tUfP5BK0mChhyTbL/c7uQyZ5nVIPcMXolAaFJzC5PWtjSP9Wwwr/RUjhmDvzv6ztSu pDRg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=UdwHjLqX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g20-20020a1709064e5400b0099298837776si13370565ejw.629.2023.07.17.11.05.53; Mon, 17 Jul 2023 11:06:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=UdwHjLqX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230473AbjGQSDe (ORCPT + 99 others); Mon, 17 Jul 2023 14:03:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34554 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229938AbjGQSDV (ORCPT ); Mon, 17 Jul 2023 14:03:21 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C7521E55; Mon, 17 Jul 2023 11:03:19 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 4CF5A611CE; Mon, 17 Jul 2023 18:03:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A6588C433CB; Mon, 17 Jul 2023 18:03:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689616998; bh=qrmkRJUcCb33D57HkzURt5PuKRrWNnsRo/tBMS92MhE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UdwHjLqXUhPxQ2N5R1zmC27110AaNXYiFtwwZ2a8+8xHPpWEmvCrbhUkry60YJLIM b2Pczt9fyDGyuVibGeaSgkeS2izPNY+H7icYNdr9eNUOovesJykc4EcyDMFnWuAS+S kCngrQmTBoYtZwBj6K4eqy8DQqSPsVLoVWZPolmCscxt9R7ihK7lIz3NExXJxFsf6r UndJA48RETusgsPrsvYbuZ33QpIHlpyRWNrL793sSCTGZcRg0UtGfUPzmYIWnXeHH7 fjPMd18adrwHyXXDQeS4qcKtNMvo/2yMAUC7Whq/EI9VspYLBpIIv3JbBOJOGIpvrU XZcXo6W0YVc5Q== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id 3F9C0CE0836; Mon, 17 Jul 2023 11:03:18 -0700 (PDT) From: "Paul E. McKenney" To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com, rostedt@goodmis.org, "Paul E. McKenney" Subject: [PATCH rcu 4/6] rcu: Mark __rcu_irq_enter_check_tick() ->rcu_urgent_qs load Date: Mon, 17 Jul 2023 11:03:15 -0700 Message-Id: <20230717180317.1097590-4-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <6127192c-da9b-4599-9738-6e8f92e6c75c@paulmck-laptop> References: <6127192c-da9b-4599-9738-6e8f92e6c75c@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771692022669447044 X-GMAIL-MSGID: 1771692022669447044 The rcu_request_urgent_qs_task() function does a cross-CPU store to ->rcu_urgent_qs, so this commit therefore marks the load in __rcu_irq_enter_check_tick() with READ_ONCE(). Signed-off-by: Paul E. McKenney Reviewed-by: Joel Fernandes (Google) --- kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index fae9b4e29c93..aec07f2ec638 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -632,7 +632,7 @@ void __rcu_irq_enter_check_tick(void) // prevents self-deadlock. So we can safely recheck under the lock. // Note that the nohz_full state currently cannot change. raw_spin_lock_rcu_node(rdp->mynode); - if (rdp->rcu_urgent_qs && !rdp->rcu_forced_tick) { + if (READ_ONCE(rdp->rcu_urgent_qs) && !rdp->rcu_forced_tick) { // A nohz_full CPU is in the kernel and RCU needs a // quiescent state. Turn on the tick! WRITE_ONCE(rdp->rcu_forced_tick, true); From patchwork Mon Jul 17 18:03:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 121487 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1265280vqt; Mon, 17 Jul 2023 11:06:11 -0700 (PDT) X-Google-Smtp-Source: APBJJlGm7hQlorqCfBrvidVSXPR7/ljOdtjpXo4GmCym/BkFix8iV+lgeF5b4P0egAsebPqlaaaZ X-Received: by 2002:a17:907:dac:b0:993:db29:d27d with SMTP id go44-20020a1709070dac00b00993db29d27dmr193288ejc.34.1689617171554; Mon, 17 Jul 2023 11:06:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689617171; cv=none; d=google.com; s=arc-20160816; b=sPs7JssEISxID0SzGa6dQ2yH5riKeR9xp6F3AxCiGhmdrXz1HO51uwVIl/6ZII6hj2 GOCfYk6CYYIly76C2vzLgOWM9PKZZX/czOYu2wiaCaReAcLPwu6fjYQesgf6/ZBF0To4 TLHGxsK0mEIEEoVslP0/IgfcmFy3wW084nnzEKWP6O/0nSIDF0sA9AC2b+BqcWYLuZp/ CgPzjdqH4RwyTNqp6ObwtnFjv8MSBaFlHiRLz5hqp/o04Q9k5TQ3uBdozBDrHajRxJzH hCQgJfuYS7ptTrSSNexJBGq97B+9/VrTTw4vN/h4KdyPASKTSHKbxUKIZsN8A1swvKjK zSDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=c4UWz81mb9+h2vEgsT+7sJD/F0nJrhCbu56rsSQ9AhM=; fh=Ag0RbRk3LxdpQ9OdMLAf8hbnmFe6FOAHRGAvgVTwgEc=; b=Nomh+Wk4+GJGs23T4iyMD9kD+pB1qhWS48+B8KE9r3D9TWWXEbT9u1ZAz8W0SyXI8w 6+Off3lejlmnp5nWGtXvWBGDd70vNRTblWYj4FYUMhMzOiWQ6MCXfjw+xlSwKU1xcIH0 w+5pTX1kmJh3QRMz2JQ98yKf/i/Y5ZlyO1uefvWThILgsUr5XKgrVFG7yHYCwb9ewnZa P7Uc61TIhc2VQwIps07Q8Pb074jsW5Qeh/F7xLqND72XIWDN7/DCmFk5tJ8Kt4+CYM8s 5p2DjdZNT61wZdvPaN7fM/KkSnnp+klFtQo1MQj7QQXEpEFMnKarVONkBD2/k/DL+nvk AamQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=gwsgXiGG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v12-20020a1709061dcc00b00987b20b66bbsi13890413ejh.711.2023.07.17.11.05.47; Mon, 17 Jul 2023 11:06:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=gwsgXiGG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230076AbjGQSDb (ORCPT + 99 others); Mon, 17 Jul 2023 14:03:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34566 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229937AbjGQSDV (ORCPT ); Mon, 17 Jul 2023 14:03:21 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 14D90E60; Mon, 17 Jul 2023 11:03:19 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 6A458611CF; Mon, 17 Jul 2023 18:03:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B8EEBC433CD; Mon, 17 Jul 2023 18:03:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689616998; bh=faENVi6cC50zYs1JsPUdeoJna1PA0xy0tmxx8qvTGUs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gwsgXiGGyLxGtlNnGaH4qkO5xQ+pXbWqFQn67T/rhn/Kk9ilaql1M1NQwI5VTfXtz favsZTYWhw/fpKAmN13CT5s+9eRGKUzzI4WrJDUtw7HjFEGdD7kJa4BiIue7QiMA6i lWZXDSmmOIXMHOrJg9slg6rosvhwhRiQWiKKSu62ipxsDMyegCMPKp7OHMeovFcbQT +F2h1r8TaOcpEfRwQqmWq/bp4x9Z+IGUt9si8blRDYzOwi+vYU9f5pUx5Q1S8+XQI8 FOukS7Y9EIb569hDIMCtl38Tm63De0QF2Kfk059vU3q0YYfdaWiwuSg6Ep3ODSoZx8 Q8UStCGfAqAlw== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id 41D52CE0902; Mon, 17 Jul 2023 11:03:18 -0700 (PDT) From: "Paul E. McKenney" To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com, rostedt@goodmis.org, "Paul E. McKenney" Subject: [PATCH rcu 5/6] rcu: Make the rcu_nocb_poll boot parameter usable via boot config Date: Mon, 17 Jul 2023 11:03:16 -0700 Message-Id: <20230717180317.1097590-5-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <6127192c-da9b-4599-9738-6e8f92e6c75c@paulmck-laptop> References: <6127192c-da9b-4599-9738-6e8f92e6c75c@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771692015277070280 X-GMAIL-MSGID: 1771692015277070280 The rcu_nocb_poll kernel boot parameter is defined via early_param(), whose parsing functions are invoked from parse_early_param() which is in turn invoked by setup_arch(), which is very early indeed.  It is invoked so early that the console output timestamps read 0.000000, in other words, before time begins. This use of early_param() means that the rcu_nocb_poll kernel boot parameter cannot usefully be embedded into the kernel image. Yes, you can embed it, but setup_boot_config() is invoked from start_kernel() too late for it to be parsed. But it makes no sense to parse this parameter so early. After all, it cannot do anything until the rcuog kthreads are created, which is long after rcu_init() time, let alone setup_boot_config() time. This commit therefore switches the rcu_nocb_poll kernel boot parameter from early_param() to __setup(), which allows boot-config parsing of this parameter, in turn allowing it to be embedded into the kernel image. Signed-off-by: Paul E. McKenney Reviewed-by: Joel Fernandes (Google) --- kernel/rcu/tree_nocb.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/rcu/tree_nocb.h b/kernel/rcu/tree_nocb.h index 43229d2b0c44..5598212d1f27 100644 --- a/kernel/rcu/tree_nocb.h +++ b/kernel/rcu/tree_nocb.h @@ -77,9 +77,9 @@ __setup("rcu_nocbs", rcu_nocb_setup); static int __init parse_rcu_nocb_poll(char *arg) { rcu_nocb_poll = true; - return 0; + return 1; } -early_param("rcu_nocb_poll", parse_rcu_nocb_poll); +__setup("rcu_nocb_poll", parse_rcu_nocb_poll); /* * Don't bother bypassing ->cblist if the call_rcu() rate is low. From patchwork Mon Jul 17 18:03:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 121508 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1274482vqt; Mon, 17 Jul 2023 11:24:41 -0700 (PDT) X-Google-Smtp-Source: APBJJlFJ3gaCfdvGcG3OHZn8AkxKN1Q5pFAuzlpnATNzkEjPrxlUivUQDaY2vJF3QvpLTDUSl6yA X-Received: by 2002:a17:906:73c4:b0:994:536c:ab45 with SMTP id n4-20020a17090673c400b00994536cab45mr7996393ejl.50.1689618281467; Mon, 17 Jul 2023 11:24:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689618281; cv=none; d=google.com; s=arc-20160816; b=dFUCNRZFByHwTzA/qxO2GXfs8FFK3zwL7d77klCLzjMDsZ05re3f9uEbeHg5Y4inDz axJfs2JbgR1kNQdL2bwkmjXYcp4e2F+XCYbtsH7oEfNIHw+XWSqg3Ei5xP1WkoQ0n21e 50MXdrDEYOU3549mcdii9hOW3pOVj/fYRBQmEm6IPL+WGIytwDR6oLjoQuSPccfqoIam fl0Aq4YfMhgHowlgBUcWfDyrTyPe9iEXlfH1maGLF/w9xuj7xVKxaV/OYGcw0KI028Fu nW9gSYZee3oiEtYiqvjNCRUvpnQ3/3hunHblb2r+WvCjvEh1wYiH9Xwg2IMSXRla37Bf d6sg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=mia4pCzhNuiW3y6T/7Js7WYUleKkbgZy2/l1yU1jMC4=; fh=Lb56TjNevSGTBIMzcPu79Y+BXL+OVlD7s9uUE6Q7sFQ=; b=MdndoEghSHGCRZtX8L+NQvqCuku+0VJEszobgqRlzDhCHEN7J594PairumBWLMh7VT mwI6lL5q3yZH1Zh/c4yJGYsJoZkRpiH82ji6VfK230PAB5scCGJ9UTfTZ6asFEyerz59 jzs2Tqsi/8EihLLLDvvHQMt0Y0hfT88idAxYrrnE4k0Y3id1JwG7DPFofpCTBfk9SXgG DHVBJ5s4mP2P6Vu1bO33xEY7I1FduAWVqxZXuEma/5ODhHagNSaVhY9/mgydSGBA0vFV Jsjp5xVul4vh0HsNxwlBvkl3v9VW8KMaWPfmjhwgmlJctg17BCKn96sYsPujwzfP0gJM hz7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="dwsvUF/M"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e25-20020a170906081900b00997672cb9d7si12863ejd.411.2023.07.17.11.24.16; Mon, 17 Jul 2023 11:24:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="dwsvUF/M"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231128AbjGQSDh (ORCPT + 99 others); Mon, 17 Jul 2023 14:03:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34556 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229970AbjGQSDV (ORCPT ); Mon, 17 Jul 2023 14:03:21 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D49B499; Mon, 17 Jul 2023 11:03:20 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id AA8A9611C5; Mon, 17 Jul 2023 18:03:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E07CAC4339A; Mon, 17 Jul 2023 18:03:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689616998; bh=vEUUOY6M/3b2MdG2PW8TiiGilUJqe947oj/T9vFTNTA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dwsvUF/M6y1htH9x4F8FD9RJ7dMM3iqjK0L9G/KO/bHFbfAbvKW9LQqgdffTCkrJ8 Q3VAWs2tJvzYG01qCc+I0khfxeLsX5IXuA1qB7E7B6bmN6KzPvg0NDwchVgnJZIkRt l/BgTtbHEtZ8VzJoDXONq4GP1/9sdbeAh16Ap3IUrKuqUoEdH5IIJkkIX1TXbu5hZI ZMocGgOmJXnGa8S6m/1xMih1P4I3vb6g6tBoxrHzFJD1HGwLxm8KgklhyGYt0jh8x3 PoBhOvFNITxVPY0ovU5TqzlWXzTrJ9FCy1Vy3qu9PymxoGgX6Z0t1iYAQmHbcobG8s ZyVrbtuztfxPw== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id 441F6CE092F; Mon, 17 Jul 2023 11:03:18 -0700 (PDT) From: "Paul E. McKenney" To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com, rostedt@goodmis.org, Alan Huang , "Paul E . McKenney" Subject: [PATCH rcu 6/6] rcu: Use WRITE_ONCE() for assignments to ->next for rculist_nulls Date: Mon, 17 Jul 2023 11:03:17 -0700 Message-Id: <20230717180317.1097590-6-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <6127192c-da9b-4599-9738-6e8f92e6c75c@paulmck-laptop> References: <6127192c-da9b-4599-9738-6e8f92e6c75c@paulmck-laptop> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771693178594996270 X-GMAIL-MSGID: 1771693178594996270 From: Alan Huang When the objects managed by rculist_nulls are allocated with SLAB_TYPESAFE_BY_RCU, old readers may still hold references to an object even though it is just now being added, which means the modification of ->next is visible to readers. This patch therefore uses WRITE_ONCE() for assignments to ->next. Signed-off-by: Alan Huang Signed-off-by: Paul E. McKenney Reviewed-by: Joel Fernandes (Google) --- include/linux/rculist_nulls.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/linux/rculist_nulls.h b/include/linux/rculist_nulls.h index ba4c00dd8005..89186c499dd4 100644 --- a/include/linux/rculist_nulls.h +++ b/include/linux/rculist_nulls.h @@ -101,7 +101,7 @@ static inline void hlist_nulls_add_head_rcu(struct hlist_nulls_node *n, { struct hlist_nulls_node *first = h->first; - n->next = first; + WRITE_ONCE(n->next, first); WRITE_ONCE(n->pprev, &h->first); rcu_assign_pointer(hlist_nulls_first_rcu(h), n); if (!is_a_nulls(first)) @@ -137,7 +137,7 @@ static inline void hlist_nulls_add_tail_rcu(struct hlist_nulls_node *n, last = i; if (last) { - n->next = last->next; + WRITE_ONCE(n->next, last->next); n->pprev = &last->next; rcu_assign_pointer(hlist_nulls_next_rcu(last), n); } else {