From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id F088FCFB440 for ; Mon, 7 Oct 2024 11:01:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8EEC96B00F5; Mon, 7 Oct 2024 07:01:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 89EB46B00F6; Mon, 7 Oct 2024 07:01:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 766666B00F7; Mon, 7 Oct 2024 07:01:25 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 58AAA6B00F5 for ; Mon, 7 Oct 2024 07:01:25 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id EAF3DAC8A2 for ; Mon, 7 Oct 2024 11:01:24 +0000 (UTC) X-FDA: 82646514888.29.C17A9D1 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by imf02.hostedemail.com (Postfix) with ESMTP id 0E3D78001D for ; Mon, 7 Oct 2024 11:01:21 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b=GvTaX+lQ; dkim=pass header.d=linutronix.de header.s=2020e header.b=7nR9JB7F; spf=pass (imf02.hostedemail.com: domain of bigeasy@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=bigeasy@linutronix.de; dmarc=pass (policy=none) header.from=linutronix.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1728298814; a=rsa-sha256; cv=none; b=OeACWjAS0M9oX0vMI3xVr6VKYn3sJvSFfrNTCd6mma7KZrZSrGWMpe+CCsk6gUd0Cxa7q9 QJuTl8/lFD5hmQLqnoRTky2R/sWx7z3IvYGxQRBuN5YTrykJDXc32kNJcprkMIr/M12asZ r6rr4fCaiqLYlGKDM7UpgpVspVp81Dw= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b=GvTaX+lQ; dkim=pass header.d=linutronix.de header.s=2020e header.b=7nR9JB7F; spf=pass (imf02.hostedemail.com: domain of bigeasy@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=bigeasy@linutronix.de; dmarc=pass (policy=none) header.from=linutronix.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1728298814; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=c4gRHCcLb4jbQI6d/h1siM+v84iL2e+zAz1uss1+vmg=; b=jga/56uOrFY0roxyCmGk/My58RYjr/m7WvMhgrkdCpdw0Dm5cO+qxTgMpCWne4YqyiwX5U W3Md7gGDtfC238E/LjqHcyPv8/xeJ1XU+af65By2MNqRz3P18T1yFqxLxntJzSPrSVszxa rcoPeiU+q/BIxxiRTYX5ihmq5/+Wt9U= Date: Mon, 7 Oct 2024 13:01:18 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1728298879; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=c4gRHCcLb4jbQI6d/h1siM+v84iL2e+zAz1uss1+vmg=; b=GvTaX+lQ3NFJaSD+N6WWBhRg2nHwOXDlCfeAs7i0mcIjLclUNFJo/jPF4FdOG1gOMhcqWO Fnv568281VwxHzgCXFCxyX43gL2iWgdqLFWkI7Wi/lGFKkzHmg5cRP0yvEunImGAkl5Sag vUtKBFVtaFrPqj7ePow9Mqmp1IR/Vm5ertGBjEXYCoBHJXhoLhjUR7YhklKST6C5a/loZj U2vpMNH6ji0kD706Ne1F0UvXmvLQXz/otlk5pJY5ExiSpmW6wtF1uk6Yvd3h4uL1rm8+zn JIlkUu059Vt9ILYFyGTIiEGjEVTk/1ZRA0YM8Na4rADk9GRmvIF+zNB4OOeKbg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1728298879; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=c4gRHCcLb4jbQI6d/h1siM+v84iL2e+zAz1uss1+vmg=; b=7nR9JB7F/MR7pVgKbZWbz84B8/0uzBBvbTBoD4XEWdCFiRynDn+RBHbKDPmLk1OFpH6Rba xGqMTFDovGI6M5BQ== From: Sebastian Andrzej Siewior To: David Laight Cc: 'Mathieu Desnoyers' , Boqun Feng , "linux-kernel@vger.kernel.org" , Linus Torvalds , Andrew Morton , Peter Zijlstra , Nicholas Piggin , Michael Ellerman , Greg Kroah-Hartman , "Paul E. McKenney" , Will Deacon , Alan Stern , John Stultz , Neeraj Upadhyay , Frederic Weisbecker , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Lai Jiangshan , Zqiang , Ingo Molnar , Waiman Long , Mark Rutland , Thomas Gleixner , Vlastimil Babka , "maged.michael@gmail.com" , Mateusz Guzik , Jonas Oberhauser , "rcu@vger.kernel.org" , "linux-mm@kvack.org" , "lkmm@lists.linux.dev" , Gary Guo , Nikita Popov , "llvm@lists.linux.dev" Subject: Re: RE: [RFC PATCH v2 2/4] Documentation: RCU: Refer to ptr_eq() Message-ID: <20241007110118.RJ7zm3ie@linutronix.de> References: <20241004182734.1761555-1-mathieu.desnoyers@efficios.com> <20241004182734.1761555-3-mathieu.desnoyers@efficios.com> <72af935f4a2a4e23b68845d2f6855103@AcuMS.aculab.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <72af935f4a2a4e23b68845d2f6855103@AcuMS.aculab.com> X-Stat-Signature: h9ah6gqw79q1ag9utdmxsw3i6ygxbfmz X-Rspamd-Queue-Id: 0E3D78001D X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1728298881-131238 X-HE-Meta: U2FsdGVkX1+rs2VxMicvuCWDytZmrY9O1dqnPRAaaNBUyY5pedg8h4o+JUSReokyAb7oN+TZzdu5bMYMbdov1+xMGR0FR3mzJ0ycIY9trKYkt5ZGKAJ39H375Wv8tX2uOWBnE0A0xl8mX8TEviAC880RBqFQcK6HUJbCuGx7RAb0GNXxa7T678xiNili74NWpPYgzCxu/DGGP+cWEjUC9Ag8b3EoukNmkAXu1ODSWdHqVedlhG1WjiMBzP9C00ErcgKqW8q3BYTfVY68z7jVv5Rwaub6jKYgtcuk018yKZYdvqXFLpN7irBUbwlY5GZX8X5Nt0E1iH/tBy0eqAyKp0lNOdJBCUyIJZpDN1HIpD4XGJxSMBk50bPWEqqamnmBiOtz/cfACTkkyTSOxuCKnjCr26cQ5QCkAC2845QopH3zlxoTuGsYlRwUeJ1cuUOhiZNHTn8aziLY2OkflKpdECRskdkUF/KcqD7PLA8C16vAuwy3+CDJpkwPLLw7zF3meLUp21W+uaSh8mSSg0AAmlzct0B4te2sA4YpzSSD0BBJgVMUfSujMKQKSH1i0HXJfHqnlwYCAvgRcWBXrv2AmvQGbcR4Dty/wPHVHrdRh6w1dfhP0ai30lStkdjN+qN314Q42swOJbx85qA0mPqp4Feg/ZBwWBdzzaK6RspRKXQvff7WgYYUdAsl5+QWvm+pPYzs8VV2fpSNtYD3j7MkTVAXabLZ3WpjFD754RuvISf4uUtNOyHgi6q8N9WrmhUDAzjq+I+kqXotAfxp4ohdNS9aKloW8qGIFqeOVZDNkoXq4++PA7fykTakTdFboOjIlOrxXsUOdfK/Jvk0kHI7SmXqTK0Cqgsg+RR6OZ9eSjB7mwZFjF500belSwQWp1H+/qnK7lOy/TH8EUQcq3YskAi/clhBAcwUN0YjG0MxaU+z4noag0XCEMcOssivUZcns2qrVnU4fD+jgOgZ9Yl KbyO+D7X ufIXwLht53fo3HqYRvuAmaptrv72/h5UYbkQscPH3Yd1jTp7fVqIoLd6jace+mPPQxAtV4IDMmuQaXPU5uU3hsoknd4JqitObGsPjnYL9uqoxJSEIFTN8p/IGVZjTzFaHtyFf48OnQk4433Vyy4y9ZOBjQDM9nuNqYbfTM0cvTlaWC4KKWNrw5Rf+K5gxLOAy3QuDE001b/pz9JgBIWmLq5hVNmLplSkQiGBBFbcrnW6zM9lXNTEw63/5QYV2BeiC94Vuvx0e7K4ScCVANWiV/DVjA6u3LmItzmRDPJBLm0OG14B2BSqVIpLh/SI6dBpFlRO+ X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 2024-10-06 19:52:49 [+0000], David Laight wrote: > From: Mathieu Desnoyers > > Sent: 04 October 2024 19:28 > > > > Refer to ptr_eq() in the rcu_dereference() documentation. > > > > ptr_eq() is a mechanism that preserves address dependencies when > > comparing pointers, and should be favored when comparing a pointer > > obtained from rcu_dereference() against another pointer. > > Why does this ever really matter for rcu? > > The check just ensure that any speculative load uses > a specific one of the pointers when they are different. > This can only matter if you care about the side effects > of the speculative load. > > But rcu is all about (things like) lockless list following. > So you need to wait until it is impossible for another > execution context to have a reference to some memory > before actually completely invalidating it (ie kfree()). Not always. Non-RCU could would have locking with a barrier to ensure a reload. RCU would not have the barrier. Assuming the pointer, points to a struct, the compiler could load an element from the first pointer and keeping it after it ensured the pointer are equal. However based on the logic, the content could have changed and the compiler would not load the new value but keep the previous one. > David Sebastian