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 DAA30CF6497 for ; Mon, 30 Sep 2024 10:12:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5FB1C80025; Mon, 30 Sep 2024 06:12:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5AABB80017; Mon, 30 Sep 2024 06:12:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 424C380025; Mon, 30 Sep 2024 06:12:58 -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 22DC380017 for ; Mon, 30 Sep 2024 06:12:58 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id C82EF161CFE for ; Mon, 30 Sep 2024 10:12:57 +0000 (UTC) X-FDA: 82620991194.17.EBEBF2A Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) by imf26.hostedemail.com (Postfix) with ESMTP id E8F2C14000E for ; Mon, 30 Sep 2024 10:12:55 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="hIeP/dP5"; spf=pass (imf26.hostedemail.com: domain of mmpgouride@gmail.com designates 209.85.210.179 as permitted sender) smtp.mailfrom=mmpgouride@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727691112; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Kg9QbxXqBJRz1Y4pX/no4eFBUpG3N+9Vg2SGSZ259dc=; b=uuZQpcPyAH6l+tGnMDk9h2gEtHrN2yc2NMD+Vcd2ntSwABT+hfApMueUOnXPQUcSkqO/m6 1ZQusK0wctsWWmKUBA5+mFmhWIRheS3Zsl+agdy0GhG0rttGsaLX10sopJKiI82qVf63F+ CdWzGF3OKn+V9yRGr3/te1pWMhmLtEQ= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="hIeP/dP5"; spf=pass (imf26.hostedemail.com: domain of mmpgouride@gmail.com designates 209.85.210.179 as permitted sender) smtp.mailfrom=mmpgouride@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727691112; a=rsa-sha256; cv=none; b=sfNYPL97yPnq1/dPQ3ryhLTPeW+5atq8xyYOuS9wnSYTRPP1jWdMjdc8zkEArCzq7TOYUF so3sJT0i8TlAqMV68r2vYytPS3/H296tEX8o72XBs/jBPb55ol9Gxra2Pq7SMUdnPFxwf/ +FEo+DcDvtVRR2e04f20yNbn/AhiyGY= Received: by mail-pf1-f179.google.com with SMTP id d2e1a72fcca58-71781f42f75so3890961b3a.1 for ; Mon, 30 Sep 2024 03:12:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1727691175; x=1728295975; darn=kvack.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Kg9QbxXqBJRz1Y4pX/no4eFBUpG3N+9Vg2SGSZ259dc=; b=hIeP/dP5unmkMtQbo8Yn8DZnytjKYnrsz71fhaauauNiCDha6VjJSLfhdnx6IRNpxL Eyb6a8Aik+AeSySMiwuZfYsf9KYafzVerKXTvSWKAfv2x7DVvSAhsC23+k7U+6KRpfe3 IH8P/R+3h65BFjKypLqL8AqiGb0UUe2YMwLRPvBdw/YHBe+oP8b4q2BsmVl1enBpQN/L uLa0keDaIl7eOMN5UH1Ylh2U7jx+FACcjfstNE7vek9Gao19POfIP/EVXhPVzd0JpvwJ 5eV8+ycMvqcb0IdLhY6yLJuYRIr0wuheVXb15QFC4Rp0SGKlqB0YZ91CwwRWGSlVYbIY Yd7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727691175; x=1728295975; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Kg9QbxXqBJRz1Y4pX/no4eFBUpG3N+9Vg2SGSZ259dc=; b=qLok/CZDHz7Hz0NyotiN1y0AOTz9wkECOxNyd5g0wwjKYexezB1QdHZtKCm6cIusgd d3qCDSXxdkQ93pvMGAxzmfeQuu00dZjEO4MyjMvNWSzQGJZRcIazEF1S0tV8o+u1PL1s W0iK+L2s37TQZkgUZ97wrvOYXHu6BcKAIF+rdEfn6841IceI5U1Sja2qhWOGRnJNuw0X P5VdKsOa1yIHI+cFBSLNCTADdMJ8/loh9GN9DpKDYonkeEWqAui+fO0snTj3mMjHSJDy jx5NsCT/fdXH+M423fAeJjGiVb40JlQXjftVrW7qTdX2Gp4x1MzZuJMfr+GdL1zqgIua B4BA== X-Forwarded-Encrypted: i=1; AJvYcCXe02hDm25KdTxKe/naG8kLpLxu16OY2aWCtMohXpWpljwLeFMxHLR9G0cfd4OCOnR9GgNMDgr1vw==@kvack.org X-Gm-Message-State: AOJu0YzdjDm44o5CN+0+jmf57YNP1Om0LeAWzj8axNHAInsOldJJkfsg eABtgJgsMkVy1aZ49gzWb5zNifVphlZ+bDfZWD0qqK6MqLVjLCRQ X-Google-Smtp-Source: AGHT+IHd9c7eDxtsDCp4q9aECEurM4CPotCQiS+DrDI11euKt8CbXa3cbC6GEHE9tpc+7Py5J44F5Q== X-Received: by 2002:a05:6a00:1304:b0:70d:2e24:af75 with SMTP id d2e1a72fcca58-71b26072fc3mr18591297b3a.24.1727691174483; Mon, 30 Sep 2024 03:12:54 -0700 (PDT) Received: from smtpclient.apple ([2402:d0c0:11:86::1]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-71b265181f9sm5877779b3a.133.2024.09.30.03.12.45 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 30 Sep 2024 03:12:54 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3776.700.51\)) Subject: Re: [PATCH 1/2] compiler.h: Introduce ptr_eq() to preserve address dependency From: Alan Huang In-Reply-To: Date: Mon, 30 Sep 2024 18:12:31 +0800 Cc: Mathieu Desnoyers , Alan Stern , Linus Torvalds , LKML , Greg Kroah-Hartman , Sebastian Andrzej Siewior , "Paul E. McKenney" , Will Deacon , Peter Zijlstra , Boqun Feng , John Stultz , Neeraj upadhyay , Frederic Weisbecker , Joel Fernandes , Josh Triplett , "Uladzislau Rezki (Sony)" , Steven Rostedt , Lai Jiangshan , Zqiang , Ingo Molnar , Waiman Long , Mark Rutland , Thomas Gleixner , Vlastimil Babka , maged.michael@gmail.com, Mateusz Guzik , Gary Guo , RCU , linux-mm@kvack.org, lkmm@lists.linux.dev Content-Transfer-Encoding: quoted-printable Message-Id: References: <20240928135128.991110-1-mathieu.desnoyers@efficios.com> <20240928135128.991110-2-mathieu.desnoyers@efficios.com> <02c63e79-ec8c-4d6a-9fcf-75f0e67ea242@rowland.harvard.edu> <2091628c-2d96-4492-99d9-0f6a61b08d1d@efficios.com> <8d20cf79-9fa5-4ced-aa91-232ccd545b59@huaweicloud.com> To: Jonas Oberhauser X-Mailer: Apple Mail (2.3776.700.51) X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: E8F2C14000E X-Stat-Signature: 9q37yimgiou13jkwgn55f3uzh9ornrus X-HE-Tag: 1727691175-235426 X-HE-Meta: U2FsdGVkX1/rXFdSvwjrOsBkc1/wQPp5GDn5NWpBMva7pQ29KyjDv5QQAFklQaWY2kLxOcUjoloiCowcKzZ7jeEDDKAkNtK6F5M8BPkHJGMBH/NmXUYXuHiFq3yaZ8VCpLHkSZFvCFBMnvQP7yvYrWvAot+wpiAGBC1wea0NwHT0yt5mLYktg/32xQBn5wSbSQhkMBe5xfiwUyZ7kONPjSRFbO/dlfrWcabjlWOGSGSR52/VBpfR43il0b7qHkL3mYFvuWSaNsOza6JzTX/e1nNzxBx694rv4WKZJ8ab6X/NmsxxhKJYi4KbYQDuxhGVkZdl5whbpF7ASTTUEjepnBNzhjj1mfz18xnNZElUpNywlQ1aJO806lrvKoUeaPcraDj1dOHwGxQME7IWgiyocbZISMh3Bni2uZBTIGiP9rKMTt8/YKrBAZj9A+qV+stCwKdr07DmWXEEwDJF0BLxJt2gioKgc14k6+7BP2gmmfUXPLUXd6wg/gOUAsI7j4m2NWaY1/Wfa3WFIUOuiOIRrTY9nz5R086fgpL8j2vuF/NiVXxO+jO70FW+I9gxq8Cd1IJagGi3+yqaJ2fbLIHqebqWtR+VmMkpVw11nK49No9zk15ETlmLuQd0fxPyYUfDULUGSntT7zT/6jgGilpOISSSiz21T56s0RKOqOEUoqf5827SAgK8902w25A+wi9PEYkcUwrASo9HcwLHPN2KPR4Ltd0LAiT2VercIcVy2Cl0VKfUyhYEqtvs9n7lZHb6WkRSAj2jJZVyI+NcAnEgU4hNCH3zPvTEmoR2hDlezZpqHGaIQETvnU1WTlVqnCKcoCxtf2l5mRFO0suuwHJ9TP9njxkPgaBIAvNcFQUsl/FbZdlHwNQg1FTOZIkoUK9fSk3pvYzRPdHuQsnIqppHos3fk0/LKP6fM5uyy4dJlW/wuyVKs361pXNpfR/oqnNsMKaGpLr/d6KK2Y+Z+ou FDuB6oSU hVZC/MH6KwCH+oahoS4dKqe3m6Dez4dzGNzAU0LTpr4Znet2eE+wA4kgJutBLBZ8iasRJf79j3Ft2F8HGdnbV8f8s45uVEtxhUg4rJGcXSuxGA/gcof+I/aKNQQjLUKqP79k7UkfaAVBwA9cocwwCvwtjFztAHhDg/tcYnyCcg/UVCN7jxPeBJMMxvNAFaR1QZ+X8FgW2lsCHHj7FTXrjcA9PyWG6ItmBzGmWZMCc03ue/RyMDTo4bF1xxbBHRpojOrkwqavTfCwcNc+eyaHXv5KbamkMGvf0A6SApRPBBt05ICsWDLd8uPw1y5JOdbCRRQnfdEzvFZj2E63hka7DNwLaqoPAh7sgX/vQinrh0PElFQD3pFA9bZs5avzsNtQVX4O1DmbQmPcM9R0XJjO+K/uxi2s6kgQwFGYc/Zu4aXVidOrlfDtIeM1PR7QYTlz07fRFNabuEhZPR1MFZmksGcif+SJlKO6T/V82mBnRYskM9QsXKC07czQALl+0frxtHCKftZyOGjoudC2vIWWydLGQwsg99tkqlOmZEmfW1EFnmsgo3FcjoIcM87UwdzBodeIiXAhjXui2PlK0vdeWme+vRjUTkdnO6p+AVr2tgt3mCylwjbeZmtxPPBEaaTINRdOIT3Vdc3TH9OxLGp5uC8KWng== 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 Sep 30, 2024, at 17:33, Jonas Oberhauser = wrote: >=20 >=20 >=20 > Am 9/30/2024 um 11:27 AM schrieb Alan Huang: >> 2024=E5=B9=B49=E6=9C=8830=E6=97=A5 17:15=EF=BC=8CAlan Huang = =E5=86=99=E9=81=93=EF=BC=9A >>>=20 >>> 2024=E5=B9=B49=E6=9C=8830=E6=97=A5 16:57=EF=BC=8CJonas Oberhauser = =E5=86=99=E9=81=93=EF=BC=9A >>>>=20 >>>>=20 >>>>=20 >>>> Am 9/29/2024 um 12:26 AM schrieb Alan Huang: >>>>> 2024=E5=B9=B49=E6=9C=8828=E6=97=A5 23:55=EF=BC=8CMathieu Desnoyers = wrote=EF=BC=9A >>>>>>=20 >>>>>> The motivation for introducing ptr_eq() is indeed because the >>>>>> compiler barrier is not sufficient to prevent the compiler from >>>>>> using one pointer instead of the other. >>>>> barrier_data(&b) prevents that. >>>>=20 >>>> I don't think one barrier_data can garantuee preventing this, = because right after doing the comparison, the compiler still could do = b=3Da. >>>>=20 >>>> In that case you would be guaranteed to use the value in b, but = that value is not the value loaded into b originally but rather the = value loaded into a, and hence your address dependency goes to the wrong = load still. >>>=20 >>> After barrier_data(&b), *b will be loaded from memory, you mean even = if *b is loaded from memory, the address dependency goes to the wrong = load still? >> Sorry, *b should b. >=20 > That's exactly what I meant to say. In my understanding, it can happen = like this: >=20 > a =3D READ_ONCE(*p); > ... > b =3D READ_ONCE(*p); > if (a =3D=3D b) { > b =3D a; // inserted by compiler >=20 > barrier_data(&b); >=20 > foo(*b); // compiler definitely use the current value in b > } >=20 >=20 >=20 > In the end, the address dependency is from the first load, and the CPU = can speculatively (with register renaming, forwarding etc) execute >=20 > a =3D READ_ONCE(*p); > b2 =3D a; // speculatively > tmp =3D load *b2 // speculatively > b1 =3D READ_ONCE(*p); > if (a =3D=3D b1) { // confirmed > foo(tmp); > } I get it now, thanks for the explanation. >=20 >=20 > best wishes, > jonas >=20