From patchwork Mon Jul 17 18:01:04 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: 121497 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1272991vqt; Mon, 17 Jul 2023 11:21:26 -0700 (PDT) X-Google-Smtp-Source: APBJJlHruGUGyT1YKLWK7k5Y1490OIACdD+gSWyjMHxwMGLqs4xhoZzNf5sMaaAWNOAsy9CXqwFU X-Received: by 2002:aca:620b:0:b0:3a1:e132:dd8b with SMTP id w11-20020aca620b000000b003a1e132dd8bmr10415653oib.41.1689618086312; Mon, 17 Jul 2023 11:21:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689618086; cv=none; d=google.com; s=arc-20160816; b=JbRlZ1BtejrZOKpuzyrAyCRGKlgkW+tANcZFMJGkbvtEVik2xbB507vcP7mwxENLp+ AaqrWbnyoDGr1ajLGuaIf5O0viPSLR7PIJYhWfOj21kGpFBt2Bbi3RbgPctTIEJl+0UN 6ErbOBjhEADH6ijxn6LoN34DXSYDfft/VXU3u8opDtGU9EhPnUS+eguRRkuGQvq3zNQi j/Yw8m7RcTq08P8Rdrl+cg8Ii6BKO375i0R3IwE+gmacR1talL+ljQYmD4JIeUfeVtEp g7rbqt402wR6aFDGdVa+EWJGjRigoNz6C47TFNeI5rWUvaNjDwNdarPLIrDd1RxY7nS6 AKKw== 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=oZInzbeGcxYRGow9R4CHxqyWojvIyvTlmsFIA20z2cs=; fh=K5ciEs3qOiAcGi/ISsy3tIzfUk6gzd6nuWQjNn1UHbI=; b=WiiZFKgbzA72Gkji2YXU6wL3Hl4GSI/2Pk85yJTRhdZFdv8O4bHHZzEb5laYbD4o6w i09/qYv2Q94RoBr5N2dkiK6xOXPwEc9pPCFYgQJSnqCG8Fm1OqWyw0MtsG7QT4ollKZX nAtkDJNbbM6lddLbbGkqJexRkJEna+5ITjz+vhxezfCntgINSmhF0LQYIMypwEEiO8iF x2BTcIBE+fWIhDiqnn8/KYU0maCp2M0xn2AlxDTRArR90A2IgtcaARDYc3Pq8Mys7pVm TIOikWpCL6wWr3UGbBEv7n9nuSKeuYSL70bHARdef71MWXuIm1drInak1ut6yApljk5r A3Hw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=tM0uuN6V; 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 x24-20020a63f718000000b0055b57fa6d19si169432pgh.208.2023.07.17.11.21.12; Mon, 17 Jul 2023 11:21:26 -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=tM0uuN6V; 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 S231167AbjGQSBQ (ORCPT + 99 others); Mon, 17 Jul 2023 14:01:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60984 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230366AbjGQSBO (ORCPT ); Mon, 17 Jul 2023 14:01:14 -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 41FB999; Mon, 17 Jul 2023 11:01:13 -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 BAF7E611C3; Mon, 17 Jul 2023 18:01:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2568FC433C8; Mon, 17 Jul 2023 18:01:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689616872; bh=xVhWqN5eTUt3G/KbriOgUta82k5eGkWbLsO5XCSoMTk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tM0uuN6VgnjizZ71vBqyLoTzTm8+0MnUxrBU309KsSO1E/YC9yI+2XWOfLkgkoJ8Q HGTEGBgjXuFw5SwUMnEyqajvfyTXVq4hoRiF2TzzMX6ZL/XpLmhvyMN1f28PqqCjoq EqgwgS32IGiLbQrHAbwFrxloDLifJegD1ZfKqq4PRKB7hRQ3ak5JZxh+yvpl40WUCW D5qCwV2p6nB5NW7lwaert+k7Rd8K7PCY6VzJBh5ZSR0r0Cry1U491BLV9B6rIozO+a kx7iGN+9DFtyyv1cpSnlgXbtjdlzNQQvcLIkuZQ6ld4UnVozqebFezZ4FV3tSFTyHY HSKADhFu8ya6Q== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id D11B4CE03F1; Mon, 17 Jul 2023 11:01:11 -0700 (PDT) From: "Paul E. McKenney" To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com, rostedt@goodmis.org, Tycho Andersen , "Paul E . McKenney" Subject: [PATCH rcu 1/7] documentation/rcu: Fix typo Date: Mon, 17 Jul 2023 11:01:04 -0700 Message-Id: <20230717180110.1097362-1-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: 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: 1771692974152929573 X-GMAIL-MSGID: 1771692974152929573 From: Tycho Andersen s/slat/splat/ Signed-off-by: Tycho Andersen Signed-off-by: Paul E. McKenney --- Documentation/RCU/lockdep-splat.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/RCU/lockdep-splat.rst b/Documentation/RCU/lockdep-splat.rst index 2a5c79db57dc..bcbc4b3c88d7 100644 --- a/Documentation/RCU/lockdep-splat.rst +++ b/Documentation/RCU/lockdep-splat.rst @@ -10,7 +10,7 @@ misuses of the RCU API, most notably using one of the rcu_dereference() family to access an RCU-protected pointer without the proper protection. When such misuse is detected, an lockdep-RCU splat is emitted. -The usual cause of a lockdep-RCU slat is someone accessing an +The usual cause of a lockdep-RCU splat is someone accessing an RCU-protected data structure without either (1) being in the right kind of RCU read-side critical section or (2) holding the right update-side lock. This problem can therefore be serious: it might result in random memory From patchwork Mon Jul 17 18:01:05 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: 121483 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1264794vqt; Mon, 17 Jul 2023 11:05:26 -0700 (PDT) X-Google-Smtp-Source: APBJJlEo0DVf7px0/z0xO250MLdNGyGmxddRcv0otR20sxz7tjcx167TVl9cWbKggKhGKB07q+hV X-Received: by 2002:a17:907:2bcf:b0:992:1653:3406 with SMTP id gv15-20020a1709072bcf00b0099216533406mr9746922ejc.73.1689617126498; Mon, 17 Jul 2023 11:05:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689617126; cv=none; d=google.com; s=arc-20160816; b=vY1H5UkuUWSs3KsMkLNo/mZUezmeCIt888nGsOHX3yjcAR25L6nsI3gRzRZeV46ac2 wY7S8P76M3FNdCP2LIBo7b8qgD/IqDpDZJMw3VA+5tcSwPa+woFWnn+7ukuqaoh3T40j QTdZtv4gGJO55buTaAu2eoJnQNWwNe5qyS3JJwA+CIB0zOaWEp5bs/lHR1euFLEyXXwq lAOn7x0alripYQyiBmR56TjX1lvlv5kpxSmFMTL/njYvrUGD1nIlhVqQiNyY64ipB4yy jQ+uKKiQYyp6vdrksRF3JtMo/ZCc/w4mrCGPmzeRd8DfbJR268eRhuZJns5AXQVe0qF7 UCVA== 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=rmsAvq+3CzGKmTBZCkhkb5bZ7snFuh2Qv+7SP3QFges=; fh=Lb56TjNevSGTBIMzcPu79Y+BXL+OVlD7s9uUE6Q7sFQ=; b=ZqwSJl8XAzSzA4iyvk9rMszPOWDODZUBlU0Hy831d6f9fWUwt7gUN2anYTImNRFVeF cONHQDQ+tr0jy+8eHyBbrPxmfZ8XMImVq+BjN4adq27po7KhizOv34ainO3UUr3Xkb24 4oyQxbSkbvQ4dNzsJ0u0/Zk+ejEZ6g1FAVU1kfuDpYIO9p5ZyL5YTArjJVv8k8kfDPVz /rBMiuy5tMUwtti3h4TQPb8QPsFlKofPtB8A7NISLYkAsl373aL0xEm1iBo5Drru6Q4g YZM52igXY9jEZUVby1D+0IBeD4Q07dcsBovZR2HX5DfLgBOp3oRDesW3cIAtkg+CuqD/ ni3A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=QLwBXp7C; 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 xo6-20020a170907bb8600b009889ae99c40si13834146ejc.611.2023.07.17.11.05.02; Mon, 17 Jul 2023 11:05:26 -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=QLwBXp7C; 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 S229793AbjGQSBS (ORCPT + 99 others); Mon, 17 Jul 2023 14:01:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60988 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230451AbjGQSBO (ORCPT ); Mon, 17 Jul 2023 14:01:14 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4E3A7E6F; Mon, 17 Jul 2023 11:01:13 -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 D4C50611CA; Mon, 17 Jul 2023 18:01:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 36057C433C9; Mon, 17 Jul 2023 18:01:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689616872; bh=DbRDqkDR7+Vdxt3VeUxm8chleSMkPylSYd1qg6TB8zI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QLwBXp7Crfow6M3KYd6+plxls68Ur0fT2Nkdatp/DZbVsRouOnFr70xUb3c/klwIu iTQeflgIKapQD0pB+6zg1GG3TLRV8h5ia2A1KLxkgz9z7fUVVWIzqMo8FnUM798Nvs ZbuxcS0w1aWy1kdI3aIswrMKMvVF1iulD9IhgKVm1p4roahptjOYrgcr/hNxlkmQxW Iftf0F3rrGtRO4y93Si7fcv3oxQV+sVNOBAJa3D3ZGc44/d+Ur0e7ii53kST26ZVwH QVaG9t9pLV+fO40Mykmp40T1/IqNDJNghiVkhh2aQYCtO81VFz8hRlPgYE30GdASqa n51GMMaiPGQ1A== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id D3F33CE04CD; Mon, 17 Jul 2023 11:01:11 -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 2/7] docs/RCU: Add the missing rcu_read_unlock() Date: Mon, 17 Jul 2023 11:01:05 -0700 Message-Id: <20230717180110.1097362-2-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: 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_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: 1771691968242100722 X-GMAIL-MSGID: 1771691968242100722 From: Alan Huang We should exit the RCU read-side critical section before re-entering. Signed-off-by: Alan Huang Signed-off-by: Paul E. McKenney --- Documentation/RCU/rculist_nulls.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/RCU/rculist_nulls.rst b/Documentation/RCU/rculist_nulls.rst index 9a734bf54b76..0612a6387d8e 100644 --- a/Documentation/RCU/rculist_nulls.rst +++ b/Documentation/RCU/rculist_nulls.rst @@ -29,8 +29,10 @@ algorithms: rcu_read_lock() obj = lockless_lookup(key); if (obj) { - if (!try_get_ref(obj)) // might fail for free objects + if (!try_get_ref(obj)) { // might fail for free objects + rcu_read_unlock(); goto begin; + } /* * Because a writer could delete object, and a writer could * reuse these object before the RCU grace period, we From patchwork Mon Jul 17 18:01:06 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: 121509 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1274493vqt; Mon, 17 Jul 2023 11:24:43 -0700 (PDT) X-Google-Smtp-Source: APBJJlFsH2e4lcIOKk42qL1Y7qNGEaP3Uvh9FbFWTumCfZpeF60gLRMi6yPBwcvdPfxkGM5vkQrG X-Received: by 2002:a17:906:51dd:b0:965:ff38:2fbb with SMTP id v29-20020a17090651dd00b00965ff382fbbmr11321982ejk.1.1689618283458; Mon, 17 Jul 2023 11:24:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689618283; cv=none; d=google.com; s=arc-20160816; b=qg4X+ApvcT62IWOMJs/7wc8INjFd3q6PQ8Jg7XVvnefxD3bOTcH4G+kiD4TW2nBSV6 MQaJ1nYm82yFc17aRfGq2WuvrSMoODJmcV6us5kaAn3m26wp3UvB5vgo7VPyGF4RIqJA ZQXln/jVAtP5Srtw0CSEKiYdTljzrEKBj5ZGnNZMvCxj9zLrnoSXsX9eMuhd1J+HAqoz lRvthSmZLkAFhraAYGA0yzQdgeFKK+l1dpmD1ad6gU3y0WWUUQ7zpJx/vlXxXJ1ja0EG IIbTf9CnRiSLgZMZDdN09QZWfE4c32cYuwlpBvyWySZBaoRn5u0C4KJOpuZ0KgkcU6sY 5hJg== 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=zhzhjYBQkNjW7AkK77WqarRZoFymgOR1wLg470/v7js=; fh=Ye47rP3FOsjQJPqExfLK2r+v4Pyu1H+4etPb0SpsSLg=; b=JDh55DGZQ/Db4T0DCdfXyUghkt6V6cSUIKtRKYpYWdUslR+YO/2N8zt83L/CK2/6mg HuNTZuE5QLd3nPChPz11W6wGQphWSnUkN3iaQMsZ8Xfk9RJJfF/H6WKxNJAYu+56bPbE mpxy0T4e+9vIbE2+WqBflL877pytlAmrg5U7tkxujPuDUwAGGXwZivWfpKeuPgLrImxU 0UQkREeq8m0MpXsanrDVOH1CbpIEakx/CG2VZpzT+g2vGfxTYd1cMBfg0DbjrI0gAALc 9H9zwlU/ZFjfZSWePIMELFXKU58PRMVZ4xpzlLamawACjRM2r4bBNCK378/SdhMM2LtR dBSQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=afXPWLmb; 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 z24-20020a170906945800b0098e0739532fsi13695807ejx.732.2023.07.17.11.24.19; Mon, 17 Jul 2023 11:24:43 -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=afXPWLmb; 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 S230327AbjGQSBW (ORCPT + 99 others); Mon, 17 Jul 2023 14:01:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32770 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230494AbjGQSBO (ORCPT ); Mon, 17 Jul 2023 14:01:14 -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 5FBC9E76; Mon, 17 Jul 2023 11:01:13 -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 D961B611CD; Mon, 17 Jul 2023 18:01:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 44FACC433C7; Mon, 17 Jul 2023 18:01:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689616872; bh=3M0SpVkyWqfYcXcGZBOE8myfp0f75lb5pDV5D9CsGeY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=afXPWLmb4HPEM6fiia71/JKSX40Lvp7TBlcEji2LtAn9S9oRB+ZMODyrPR5gjN7B6 wzJsYdjGlJX9aQsI9GuuEulcxHqfek81LzayTYxTqOfTxlrXmhrDXcstXa07HeDxim SezmFQVm65dlBNQST2StigcXNJiGCMCJXqKiZAaegLT/8uXmHwGT0JbARInUsIk083 ZvSASeRPAjV+HraDMQm7aI37pjiL8tHN6OvlU1RKKgW6I0rnNKfSshRgAOMil5d7a+ BeMlWLDhvc0krR7ouaabAIr3vSoLQFm8ZP4Sgmw44uNa4AVfEY1NCAOqlbarkDOqGG l+AY2Cg4whPWQ== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id D65F4CE0806; Mon, 17 Jul 2023 11:01:11 -0700 (PDT) From: "Paul E. McKenney" To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com, rostedt@goodmis.org, SeongJae Park , Joel Fernandes , "Paul E . McKenney" Subject: [PATCH rcu 3/7] Docs/RCU/rculist_nulls: Fix trivial coding style Date: Mon, 17 Jul 2023 11:01:06 -0700 Message-Id: <20230717180110.1097362-3-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: 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: 1771693180867412249 X-GMAIL-MSGID: 1771693180867412249 From: SeongJae Park Lookup example of non-hlist_nulls management is missing a semicolon, and having inconsistent indentation (one line is using single space indentation while others are using two spaces indentation). Fix the trivial issues. Signed-off-by: SeongJae Park Reviewed-by: Joel Fernandes (Google) Signed-off-by: Paul E. McKenney --- Documentation/RCU/rculist_nulls.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/RCU/rculist_nulls.rst b/Documentation/RCU/rculist_nulls.rst index 0612a6387d8e..25b739885cfa 100644 --- a/Documentation/RCU/rculist_nulls.rst +++ b/Documentation/RCU/rculist_nulls.rst @@ -26,7 +26,7 @@ algorithms: :: begin: - rcu_read_lock() + rcu_read_lock(); obj = lockless_lookup(key); if (obj) { if (!try_get_ref(obj)) { // might fail for free objects @@ -70,8 +70,8 @@ And note the traditional hlist_for_each_entry_rcu() misses this smp_rmb():: pos && ({ prefetch(pos->next); 1; }) && ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1; }); pos = rcu_dereference(pos->next)) - if (obj->key == key) - return obj; + if (obj->key == key) + return obj; return NULL; Quoting Corey Minyard:: From patchwork Mon Jul 17 18:01:07 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: 121518 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1274888vqt; Mon, 17 Jul 2023 11:25:39 -0700 (PDT) X-Google-Smtp-Source: APBJJlE5K5hOoMf8z0F4YWD0t1DNx5q5OkFEqzc5IvU8FHXFZHrftSeiaHM5hb+cVjn79vurwUVt X-Received: by 2002:a17:906:210:b0:993:d117:e3b9 with SMTP id 16-20020a170906021000b00993d117e3b9mr12778344ejd.20.1689618339271; Mon, 17 Jul 2023 11:25:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689618339; cv=none; d=google.com; s=arc-20160816; b=YiILvpdknDE/3dX6kKjVC5yNzCaKlYZvtaQgbwL69twgGOppnEdAW1KnJX7eEs4PXo eGHmp3gogZDg1Y5GdXlRYTtuRdoXHoeo7bKt/k2bg1o9akJa7LJ0URGysd6xMPKlq1yk 9qz4WwWSW3oLroYEtoWERHA496qNR/IBc3PlQ3JhtzRPgqTn85GuvxrtMUW0RSRbX6Fe NMm7zIjs/RJKRViU6T+kO7Qc6iF0X6M+UvX161dl4tqOYF00h3/YoF9B2tBpySShwXT3 g0AJhmL/QxF7D76b7D3wBbHaaesfB/VFK6fsMpQgm0WUViTucoam5nUuY5mv+rJKr/BB Y3gQ== 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=YhHscobnfVUlZMOdFBhuYkq4es4JzXWfX8KfEUQqx3Q=; fh=Ye47rP3FOsjQJPqExfLK2r+v4Pyu1H+4etPb0SpsSLg=; b=cCtmVf+SI1yYgjGGEQ2xhq0XooMxemZXZx1a3WZYJT1Yd/T/fKypo0RqvaaghvFD/I Nlkf6UnhgdRxxUEauKr7GG2CCzg9ELJkJVCZ/NJMr8FRTlxQ6iNjS0nGbuH1G4e1Zz8d cO9Yiw6lt+3u96p6HVWTrQVuEkGiWerj8pJvNh9gyapxmkGsKnqRhyHSwgD1zlfmEnjw hqmqtOpt/NBld+gJokIfWWZwBQ4KjfMyWfnVd/SQ0xLqzMUsvoU7Y1VT+xTh5JpK4e0R H7phbWcSJROM0v16zbOApoNqhpezBFeDn+urqtePJz75QRJ5UQYdV6ZZsVu7EjhC6cCu Va6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ZzwrAmSW; 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 gl13-20020a170906e0cd00b00988b6ffa850si5226181ejb.1028.2023.07.17.11.25.15; Mon, 17 Jul 2023 11:25:39 -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=ZzwrAmSW; 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 S231184AbjGQSBZ (ORCPT + 99 others); Mon, 17 Jul 2023 14:01:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32772 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231135AbjGQSBO (ORCPT ); Mon, 17 Jul 2023 14:01:14 -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 8EBA1115; Mon, 17 Jul 2023 11:01:13 -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 E74FF611CE; Mon, 17 Jul 2023 18:01:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5101BC433CB; Mon, 17 Jul 2023 18:01:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689616872; bh=Y/tGOWx5q4ZXPiE4it7zg9nYO16lZ6O1v/m4xTWMYUQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZzwrAmSWJKoFU94kWriauk8IWoBE5TS+HnmT9tykbdY2EHGd4AYQEqu00ysi5aHFl ilwh6BJ0kVhp/tgiuy2qklG84FTHT42EG8indXY6dc4SKsjBRPffbKs+e18ia5PrIc bePSuyefnHyvvqMSMBgyI+vtAnTf4Hfak9p9q+lZYRdv1Dqbaks4EYmmS9t6BHrgvV qfTTWgxs72OwqK6jS+0JYUGn07iRbzAB5m7jaYI+kuQ2rlCASpLmpoDIqfxv0Yq3VD 7UJ+V8ClN6aEQNK70VOvWXDg3rG6EiAAJs70Sczxu4PECyeX7lnsMpUDhnCPWKOmxr B7aU9iDg+nIRQ== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id D8FA2CE0836; Mon, 17 Jul 2023 11:01:11 -0700 (PDT) From: "Paul E. McKenney" To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com, rostedt@goodmis.org, SeongJae Park , Joel Fernandes , "Paul E . McKenney" Subject: [PATCH rcu 4/7] Docs/RCU/rculist_nulls: Assign 'obj' before use from the examples Date: Mon, 17 Jul 2023 11:01:07 -0700 Message-Id: <20230717180110.1097362-4-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: 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: 1771693239770029559 X-GMAIL-MSGID: 1771693239770029559 From: SeongJae Park Lookup example code snippets in rculist_nulls.rst are using 'obj' without assignment. Fix the code to assign it properly. Signed-off-by: SeongJae Park Reviewed-by: Joel Fernandes (Google) Signed-off-by: Paul E. McKenney --- Documentation/RCU/rculist_nulls.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/RCU/rculist_nulls.rst b/Documentation/RCU/rculist_nulls.rst index 25b739885cfa..4d6f077552ed 100644 --- a/Documentation/RCU/rculist_nulls.rst +++ b/Documentation/RCU/rculist_nulls.rst @@ -56,7 +56,7 @@ but a version with an additional memory barrier (smp_rmb()) struct hlist_node *node, *next; for (pos = rcu_dereference((head)->first); pos && ({ next = pos->next; smp_rmb(); prefetch(next); 1; }) && - ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1; }); + ({ obj = hlist_entry(pos, typeof(*obj), member); 1; }); pos = rcu_dereference(next)) if (obj->key == key) return obj; @@ -68,7 +68,7 @@ And note the traditional hlist_for_each_entry_rcu() misses this smp_rmb():: struct hlist_node *node; for (pos = rcu_dereference((head)->first); pos && ({ prefetch(pos->next); 1; }) && - ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1; }); + ({ obj = hlist_entry(pos, typeof(*obj), member); 1; }); pos = rcu_dereference(pos->next)) if (obj->key == key) return obj; From patchwork Mon Jul 17 18:01:08 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: 121482 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1264683vqt; Mon, 17 Jul 2023 11:05:13 -0700 (PDT) X-Google-Smtp-Source: APBJJlHkOsQMoiw85JXwN99n32xj1Lvk0imPT0+cBul9WsFAWWKpki/y/1A6yKHIwdRBDfJlBEsV X-Received: by 2002:a05:6a20:6a0b:b0:135:6ef6:171 with SMTP id p11-20020a056a206a0b00b001356ef60171mr138236pzk.39.1689617112784; Mon, 17 Jul 2023 11:05:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689617112; cv=none; d=google.com; s=arc-20160816; b=X6pKWxuCoFgWqte22WrOq8K90zzMs2QHlmIrpNyZcRvzLyWMwsHUccCqyZ3w1MPRAZ s7p2zNDyCmu0/K1wGtxEWNl+EobIQ9yAMVszwi1v1JPkZCmoDiCcpnvnbQ4y5W/9/fwz 7muhQJ1jSlFC/nGYQ3howrrJgjHf2caIE7Frd9UjKiUrfP8dNzkoE5lMZinvL7FzSu+x WHXgqZCiFBw2doFXF4MPw7bX7HKIanpenuPkw2v0Y8hEmi6FWOzhjWz9qI/PO+gsC1/j 7X290KZ/BqDXLMiRw5VOdm6pIkBsUfB6obEHVllVswbF8cEoBlkYS8u3+SZ79cRdi+9m x6Ew== 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=KimqGZg7pQ26zgZVFyj+v+tT8LprbDQ1M1drQrAfV4I=; fh=5eJ4CHiWX0SJPVQXkVNPIhySYNSKBMdQlTfvAYwoHoQ=; b=zbjYJJOjxs8GTtQSg5MQCutEcUjFiznv6RxJaN4Uu6OIbfW5j4llF3szoVDulzcLUc YweT77/nVgm1s4qKxpa643BBppSgaVBkgmlibaH2Lf4UtrDc1ZagCzXZNT3XMMHwSeKn wX2zFpq+qCiqpdhdEPRqDBHV+bp1CkYC6/YXr0KtVl5NHzCo0gJRWHO3+gS4TGZPqyl4 rBCoVdwFXcVca3oWm0Y9rvazlEF/zB6beiHMGOBtitw4zL4yIk9GyBNS9MNvIErk2Ixw 9GnpKxAT+qEego6b2bfDWRb1HMJQs7BlfaXjTDWJzGP4NkpWyZ8L3xednSKdFZxBL/Mb poXw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=rtpKCZlN; 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 p8-20020a170902e74800b001b9e0d09c40si194722plf.260.2023.07.17.11.04.58; Mon, 17 Jul 2023 11:05:12 -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=rtpKCZlN; 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 S231470AbjGQSBa (ORCPT + 99 others); Mon, 17 Jul 2023 14:01:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32774 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231147AbjGQSBO (ORCPT ); Mon, 17 Jul 2023 14:01:14 -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 905DB1BE; Mon, 17 Jul 2023 11:01:13 -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 01F90611D0; Mon, 17 Jul 2023 18:01:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5F51CC43395; Mon, 17 Jul 2023 18:01:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689616872; bh=4H5bZcoG+0w9ieEzeSthnT4nJRX8tO6DLkfwj3Il66k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rtpKCZlN+OtkLZWQbdGg9iStTUBMHDho2PwBrOUbZSOew1cdg8FOlMwI0GwnMv+tS nnUt0ZsWRL5IT44W+fBP/BZ/ADUc357QMvZSIaidaBQTrSJjdvMz9sAODwhcQYIOHv D7e5e/tiNMmgsa6re/QAfAaxbR8HHYneBYbCjsI6Br4AKPCXEHg+3cWAplYD9rJ39M 8eXnV4hN5LBFzDTdmIV5EBUnN8CA+nodzVQJCs7spfpz/+z6gyPnxDz72Nic5SOutF U6x/zFnIBBk/aaKhZn4uO9SUHAy/c9J39JJv40P0p78cGAygMUV/Gl8PSL6tTiB8rs Ha4qMnoHLjPZQ== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id DB19BCE0902; Mon, 17 Jul 2023 11:01:11 -0700 (PDT) From: "Paul E. McKenney" To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com, rostedt@goodmis.org, SeongJae Park , "Paul E . McKenney" Subject: [PATCH rcu 5/7] Docs/RCU/rculist_nulls: Specify type of the object in examples Date: Mon, 17 Jul 2023 11:01:08 -0700 Message-Id: <20230717180110.1097362-5-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: 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: 1771691953723386087 X-GMAIL-MSGID: 1771691953723386087 From: SeongJae Park The type of 'obj' in example code of rculist_nulls.rst is implicit. Provide the specific type of it before the example code. Suggested-by: Paul E. McKenney Link: https://lore.kernel.org/rcu/43943609-f80c-4b6a-9844-994eef800757@paulmck-laptop/ Signed-off-by: SeongJae Park Signed-off-by: Paul E. McKenney --- Documentation/RCU/rculist_nulls.rst | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Documentation/RCU/rculist_nulls.rst b/Documentation/RCU/rculist_nulls.rst index 4d6f077552ed..479cedfec446 100644 --- a/Documentation/RCU/rculist_nulls.rst +++ b/Documentation/RCU/rculist_nulls.rst @@ -18,7 +18,16 @@ to solve following problem. Without 'nulls', a typical RCU linked list managing objects which are allocated with SLAB_TYPESAFE_BY_RCU kmem_cache can use the following -algorithms: +algorithms. Following examples assume 'obj' is a pointer to such +objects, which is having below type. + +:: + + struct object { + struct hlist_node obj_node; + atomic_t refcnt; + unsigned int key; + }; 1) Lookup algorithm ------------------- @@ -144,6 +153,9 @@ the beginning. If the object was moved to the same chain, then the reader doesn't care: It might occasionally scan the list again without harm. +Note that using hlist_nulls means the type of 'obj_node' field of +'struct object' becomes 'struct hlist_nulls_node'. + 1) lookup algorithm ------------------- From patchwork Mon Jul 17 18:01:09 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: 121484 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1264992vqt; Mon, 17 Jul 2023 11:05:43 -0700 (PDT) X-Google-Smtp-Source: APBJJlFFNDoK6tEaF47PTOnUY2DgmTvvXIzGpYdosKmBGKck1lvjrCKWPD1wsBsTH8a3/ftTENq8 X-Received: by 2002:a05:6402:31e2:b0:51d:e59c:6190 with SMTP id dy2-20020a05640231e200b0051de59c6190mr11935445edb.2.1689617143009; Mon, 17 Jul 2023 11:05:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689617142; cv=none; d=google.com; s=arc-20160816; b=EYDe7ssorJ180tSTVqb5ej3axtp/IwwobaWOENLMFQ9VbK+lAHs+Y+dgcSHdyxnZZU itJ4Ane0+XcxNTIA76dDMtWDLjuf0Rq54QL/uOjR/EsEfKVXrQKQ/oKcoXB/KT3JGyUS YBaAxg8bJ95mxNUeEmDie6ZRoMUPLb1IJ/w6gGbU+sW/sPtAWpwUGJf/eNX0y75llp/y 19CKpVZg4/S39jHAgt0RUe4YdMoHvHF9RLwCHR5zdMGg6puPPZFiZRIJYyQd+O+PdpJ/ hpeaapIff/cve8PB9uhDlQVD2dkf609bhTyzfH6b6d0bdetVe3FQz3goO1jMACqpzd9N OozA== 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=agqkWtIP+et77/kmv5nLWSjcxBMgBxjdZTr56iXre2Y=; fh=5eJ4CHiWX0SJPVQXkVNPIhySYNSKBMdQlTfvAYwoHoQ=; b=y4n7SRT9GYgSZpMTKgf5rSrcEqNI/YQQ0N6+XjuSkkyzJuM3hhGvxbAcyYqsgy1Ypl JXtJQOd4xWwXHP0SR7+/+TexxIgCnH8G4+DCkqDKkcQ7yqmqLKFx4ff8RQrn98RTSZIK JlPUt6ZpxO4wJqj+fpkBCLs/eIcI93iOutSF8axivFLR3yAiV5i8PB2xN5mS+8lq1kqv /GJYtbyJOVUxIPS4XiTI1Ty3Oi7rdtZkKl+Tf3nnfAyNieSDPqNOPL8/b7nbWm5qrtyk 45oLpOMaZzl80dr8LqL6sNqizudvsx4BAy1FZ6S8iBSxeC6t5E9GZIVNMLNFRRWMltBa ygng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=c9PPHQZi; 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 t16-20020aa7d4d0000000b0051fef304630si9161474edr.390.2023.07.17.11.05.19; Mon, 17 Jul 2023 11:05:42 -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=c9PPHQZi; 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 S231514AbjGQSBd (ORCPT + 99 others); Mon, 17 Jul 2023 14:01:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32770 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230473AbjGQSBP (ORCPT ); Mon, 17 Jul 2023 14:01:15 -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 B38EB10C7; Mon, 17 Jul 2023 11:01:14 -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 56611611D4; Mon, 17 Jul 2023 18:01:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 81611C433A9; Mon, 17 Jul 2023 18:01:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689616872; bh=vMU/XgK+8/tyV/dKBByzpBIuwOGp8w97JCzbfLX+ZeY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=c9PPHQZiElIu01MSdWkSAMWPCHtk3+ULIDkRUtTy+2KSA4s50662trJuB+lhQlESi 6yImgsJSej19sc8OrrtpAlUsnkBaPz1Lu4p33NvTC3l5VhC3z0Ki2wN0lVlEueJ8BT y1HHhmXwV2PEB65Xzt/2EcMVOJKgD3DPo2PVMp8FBTt9IC0lVpubSaZoFJFkd0w1Td EEnAfNjZhqYu/iR1d/b/1+L4yXRRjULLr7IApvLNZzGwG8Hlo9iARtupoykSmcOSEM 5rhY5kUujZybVuRJa3BAr3coH8hkC0f25wkqyjJ2J21Z5oUK5y5erARLAtsm3XiimC 3duUJiqkDYsZw== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id DD2EECE092F; Mon, 17 Jul 2023 11:01:11 -0700 (PDT) From: "Paul E. McKenney" To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com, rostedt@goodmis.org, SeongJae Park , "Paul E . McKenney" Subject: [PATCH rcu 6/7] Docs/RCU/rculist_nulls: Fix hlist_[nulls]_head field names of 'obj' Date: Mon, 17 Jul 2023 11:01:09 -0700 Message-Id: <20230717180110.1097362-6-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: 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: 1771691985228912956 X-GMAIL-MSGID: 1771691985228912956 From: SeongJae Park The example code snippets on rculist_nulls.rst are assuming 'obj' to have the 'hlist_head' or 'hlist_nulls_head' field named 'obj_node', but a sentence and some code snippets are wrongly calling 'obj->obj_node.next' as 'obj->obj_next', or 'obj->obj_node' as 'member'. Fix it. Signed-off-by: SeongJae Park Signed-off-by: Paul E. McKenney --- Documentation/RCU/rculist_nulls.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Documentation/RCU/rculist_nulls.rst b/Documentation/RCU/rculist_nulls.rst index 479cedfec446..1fb086066377 100644 --- a/Documentation/RCU/rculist_nulls.rst +++ b/Documentation/RCU/rculist_nulls.rst @@ -65,7 +65,7 @@ but a version with an additional memory barrier (smp_rmb()) struct hlist_node *node, *next; for (pos = rcu_dereference((head)->first); pos && ({ next = pos->next; smp_rmb(); prefetch(next); 1; }) && - ({ obj = hlist_entry(pos, typeof(*obj), member); 1; }); + ({ obj = hlist_entry(pos, typeof(*obj), obj_node); 1; }); pos = rcu_dereference(next)) if (obj->key == key) return obj; @@ -77,7 +77,7 @@ And note the traditional hlist_for_each_entry_rcu() misses this smp_rmb():: struct hlist_node *node; for (pos = rcu_dereference((head)->first); pos && ({ prefetch(pos->next); 1; }) && - ({ obj = hlist_entry(pos, typeof(*obj), member); 1; }); + ({ obj = hlist_entry(pos, typeof(*obj), obj_node); 1; }); pos = rcu_dereference(pos->next)) if (obj->key == key) return obj; @@ -97,7 +97,7 @@ Quoting Corey Minyard:: 2) Insertion algorithm ---------------------- -We need to make sure a reader cannot read the new 'obj->obj_next' value +We need to make sure a reader cannot read the new 'obj->obj_node.next' value and previous value of 'obj->key'. Otherwise, an item could be deleted from a chain, and inserted into another chain. If new chain was empty before the move, 'next' pointer is NULL, and lockless reader can not @@ -165,7 +165,7 @@ Note that using hlist_nulls means the type of 'obj_node' field of head = &table[slot]; begin: rcu_read_lock(); - hlist_nulls_for_each_entry_rcu(obj, node, head, member) { + hlist_nulls_for_each_entry_rcu(obj, node, head, obj_node) { if (obj->key == key) { if (!try_get_ref(obj)) { // might fail for free objects rcu_read_unlock(); From patchwork Mon Jul 17 18:01:10 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: 121500 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1273434vqt; Mon, 17 Jul 2023 11:22:19 -0700 (PDT) X-Google-Smtp-Source: APBJJlF6eTsDHy06XGQnLcOWLYvniMXE8L/WrfwlQz2FL88QMI5dpq7QhSo91rLJMNNczdhHxvZ8 X-Received: by 2002:a17:902:ed13:b0:1b7:eebc:884 with SMTP id b19-20020a170902ed1300b001b7eebc0884mr10279933pld.64.1689618139242; Mon, 17 Jul 2023 11:22:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689618139; cv=none; d=google.com; s=arc-20160816; b=l/GbeEuyIMSJc68nYfHcG6X3IKLqYvwuFGEXjrtc1tcCSpL6xPtC/Ycraa5hkvkVeU RFGt0xCcbjJOki4IEUnI/rc9sblUuZk6Fn/xG4kf27AiMgeSR8HcC3zk9cZp8ZJVwb10 DtmGUYUlLJiHViXrGMidZHbYTrmx9D3HW/MQr00aelAN4Qt7a/gqewkRP5/UdGrQk8Hp bldVKvXPc0pNKcLCt+493vhmcubdLZnGBGFjQyzKhTV5d/refsyhMKkuxnxQheqzGHIW UKg0tpRlqB5T4rGtTiXWVfmZ4cn1stOTDTYCVgr8u11zPymO/C1/ULK0NL+jrq+hsCbs Oqbg== 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=yvpsN/ZcirJAGJicMmEJGXL0cBuPCgFKHZaPT5wPU0c=; fh=5eJ4CHiWX0SJPVQXkVNPIhySYNSKBMdQlTfvAYwoHoQ=; b=giEHNfUjHjPjOI/Mcc/UfFaNYobU1piYY+qdl0eyr51icGEztjba42pOn40Nq8XSHX tMNLXM1Uw/2AEu44ZJiRL8dz5rEJdnBt6hjJvDUbEIcjiNG9kFd8JTTa+yvPHaRdeajw ed7/DFT6HzRSpTFf6Yhh6hTOmxh61oVdSrfHasDTNWLtXBmN6LCH6DiD4DQGIpNk9Jpc BmBdcrOkAykVawWejYqqgMuoPQnhYKMa9rpSNhepAdVLZCYOeh/Qp3kLxA6YOgKAfwMR 2cF3hn5TkpZkcdASiPSDQ0P4tuaS1tGS0KiPk8yYYPysIl9vqM2wL9nL3tetTYBdVB/k nsLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=rYV63FMs; 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 la14-20020a170902fa0e00b001bb1d822685si206687plb.358.2023.07.17.11.22.05; Mon, 17 Jul 2023 11:22:19 -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=rYV63FMs; 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 S231441AbjGQSB1 (ORCPT + 99 others); Mon, 17 Jul 2023 14:01:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60962 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229603AbjGQSBP (ORCPT ); Mon, 17 Jul 2023 14:01:15 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B37FEE6C; Mon, 17 Jul 2023 11:01:14 -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 5737F611D5; Mon, 17 Jul 2023 18:01:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8F604C433AD; Mon, 17 Jul 2023 18:01:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689616872; bh=xfeG1xbltoTNTdzL3NqsELbTv/pa9FZB5bRq1zF+OuQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rYV63FMskzWxOynzItXA45uVGlpO3lupAQaIN8axaEuksbv960TRV2h2o3luJZuLB ylpn6KwLy/bs8SfIVknVOgKv8FSWLf6x2t3tGV90Et5z3obUQEhd0PB+5r8q8Q20gT 1U0pEZlKNIDmCcFQLNI1rc9YmIJxMlQlkau6jGm4gpBmx7EA9jmXCgspiaiH6ADrL/ jFtZTpIFTVLrjZMIEkbzCf4+E3Dwzr8yrCe2E2B2XMwJmf3H6bobh2FTgoEvXFpQBh U8F2eFEoBpz52Vc2H1mZahNNCwyysN3SBwdKXiXbv1PKzPNT2lusiHhW8zsUDj8+HT Txi7v1wuTyKrg== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id DF4D9CE0930; Mon, 17 Jul 2023 11:01:11 -0700 (PDT) From: "Paul E. McKenney" To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com, rostedt@goodmis.org, SeongJae Park , "Paul E . McKenney" Subject: [PATCH rcu 7/7] Docs/RCU/rculist_nulls: Fix text about atomic_set_release() Date: Mon, 17 Jul 2023 11:01:10 -0700 Message-Id: <20230717180110.1097362-7-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: 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_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: 1771693030268511533 X-GMAIL-MSGID: 1771693030268511533 From: SeongJae Park The document says we can avoid extra _release() in insert function when hlist_nulls is used, but that's not true[1]. Drop it. [1] https://lore.kernel.org/rcu/46440869-644a-4982-b790-b71b43976c66@paulmck-laptop/ Signed-off-by: SeongJae Park Signed-off-by: Paul E. McKenney --- Documentation/RCU/rculist_nulls.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/RCU/rculist_nulls.rst b/Documentation/RCU/rculist_nulls.rst index 1fb086066377..21e40fcc08de 100644 --- a/Documentation/RCU/rculist_nulls.rst +++ b/Documentation/RCU/rculist_nulls.rst @@ -140,8 +140,7 @@ very very fast (before the end of RCU grace period) Avoiding extra smp_rmb() ======================== -With hlist_nulls we can avoid extra smp_rmb() in lockless_lookup() -and extra _release() in insert function. +With hlist_nulls we can avoid extra smp_rmb() in lockless_lookup(). For example, if we choose to store the slot number as the 'nulls' end-of-list marker for each slot of the hash table, we can detect @@ -196,6 +195,9 @@ Note that using hlist_nulls means the type of 'obj_node' field of 2) Insert algorithm ------------------- +Same to the above one, but uses hlist_nulls_add_head_rcu() instead of +hlist_add_head_rcu(). + :: /*