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 89BB2CFB440 for ; Mon, 7 Oct 2024 11:55:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F2BA76B00DE; Mon, 7 Oct 2024 07:55:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EDBBC6B00E1; Mon, 7 Oct 2024 07:55:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DCB486B00E3; Mon, 7 Oct 2024 07:55:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id C2E366B00DE for ; Mon, 7 Oct 2024 07:55:17 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 4771C81647 for ; Mon, 7 Oct 2024 11:55:17 +0000 (UTC) X-FDA: 82646650674.07.0C7F179 Received: from frasgout13.his.huawei.com (frasgout13.his.huawei.com [14.137.139.46]) by imf20.hostedemail.com (Postfix) with ESMTP id 12E761C000A for ; Mon, 7 Oct 2024 11:55:11 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=none; spf=pass (imf20.hostedemail.com: domain of jonas.oberhauser@huaweicloud.com designates 14.137.139.46 as permitted sender) smtp.mailfrom=jonas.oberhauser@huaweicloud.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1728301981; 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; bh=fTmr2SHlLtBinLsRwVnCD3PtCgec4bv0gfPg//yTlCs=; b=aj7hEoeZoahFsNka6QO0kQVthGbqky6/cB8vfZZnt18oon4HzXZUI+HgSSgqy7ryn92KRo I5lRoKbt3AznYb3PubWo2LRz/0vdC8htbNEGclLvdumVSW+NoErnx/i4Nl8Y2ijJTsVKdz IM4WHtplrMwT40lQDy+st4Al49ViQ1s= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1728301981; a=rsa-sha256; cv=none; b=BrcknTLWixrYnh2JOo2ZsJ+Gjylm48N4jbmzCH1vQUJmNRSW5teQOxni335ChGKr1WmWzf g1kqWCM9uS+bq8p4gp5cBBJGGCmX48q66TTqvRoHabTa0OCd1KSL6wRM20ZtmAir2bhXYf +/bSr3jOlqpDBoQGaePhXP7+odobV+w= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=none; spf=pass (imf20.hostedemail.com: domain of jonas.oberhauser@huaweicloud.com designates 14.137.139.46 as permitted sender) smtp.mailfrom=jonas.oberhauser@huaweicloud.com; dmarc=none Received: from mail.maildlp.com (unknown [172.18.186.51]) by frasgout13.his.huawei.com (SkyGuard) with ESMTP id 4XMcWw57b1z9v7NH for ; Mon, 7 Oct 2024 19:35:08 +0800 (CST) Received: from mail02.huawei.com (unknown [7.182.16.47]) by mail.maildlp.com (Postfix) with ESMTP id 76DE21402E0 for ; Mon, 7 Oct 2024 19:55:02 +0800 (CST) Received: from [10.45.154.49] (unknown [10.45.154.49]) by APP1 (Coremail) with SMTP id LxC2BwDXGjIFzANnlL5hAg--.48334S2; Mon, 07 Oct 2024 12:55:01 +0100 (CET) Message-ID: <6ae2461a-e509-4c4d-8959-ae17eb214419@huaweicloud.com> Date: Mon, 7 Oct 2024 13:54:43 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 1/2] compiler.h: Introduce ptr_eq() to preserve address dependency To: Mathieu Desnoyers , 'Alan Stern' , David Laight Cc: Linus Torvalds , "linux-kernel@vger.kernel.org" , 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 , Steven Rostedt , Lai Jiangshan , Zqiang , Ingo Molnar , Waiman Long , Mark Rutland , Thomas Gleixner , Vlastimil Babka , "maged.michael@gmail.com" , Mateusz Guzik , Gary Guo , "rcu@vger.kernel.org" , "linux-mm@kvack.org" , "lkmm@lists.linux.dev" References: <02c63e79-ec8c-4d6a-9fcf-75f0e67ea242@rowland.harvard.edu> <9539c551-5c91-42db-8ac1-cff1d6d7c293@huaweicloud.com> <2cdda043-1ad9-40cf-a157-0c16a0ffb046@rowland.harvard.edu> <5d7d8a59-57f5-4125-95bb-fda9c193b9cf@huaweicloud.com> <82e97ad5-17ad-418d-8791-22297acc7af4@rowland.harvard.edu> <2b1caba3-48fa-43b9-bd44-cf60b9a141d7@rowland.harvard.edu> <22638e2fe1274eb0834fa3e43b44184e@AcuMS.aculab.com> <68dc00b3-1ca1-42bc-8f1e-78ace10e4d64@rowland.harvard.edu> From: Jonas Oberhauser In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-CM-TRANSID:LxC2BwDXGjIFzANnlL5hAg--.48334S2 X-Coremail-Antispam: 1UD129KBjvdXoW7XF17CF4xGFy7Ww4UtrWxXrb_yoWDXFg_ur yFyF9rCw4rX3Wktr4YqF13Z34agFZruw1xZrWkGr4Sv345GwsxuryDXr92vw1fXF4qvFnx GryxWw17A34qvjkaLaAFLSUrUUUUjb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbx8YFVCjjxCrM7AC8VAFwI0_Wr0E3s1l1xkIjI8I6I8E6xAIw20E Y4v20xvaj40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l8cAvFVAK0II2c7xJM28CjxkF64kEwV A0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWUJVWUCwA2z4x0Y4vE2Ix0cI8IcVCY1x02 67AKxVW8JVWxJwA2z4x0Y4vEx4A2jsIE14v26r4j6F4UM28EF7xvwVC2z280aVCY1x0267 AKxVW8JVW8Jr1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2 j2WlYx0E2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7x kEbVWUJVW8JwACjcxG0xvEwIxGrwACI402YVCY1x02628vn2kIc2xKxwCY1x0262kKe7AK xVW8ZVWrXwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F4 0E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_GFv_Wryl IxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxV AFwI0_Gr0_Cr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j 6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UYxBIdaVFxhVjvjDU0xZFpf9x07jxCz tUUUUU= X-CM-SenderInfo: 5mrqt2oorev25kdx2v3u6k3tpzhluzxrxghudrp/ X-Stat-Signature: wx4dbxcwsaeostij4h7n8g7d6fxqy5hc X-Rspamd-Queue-Id: 12E761C000A X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1728302111-572641 X-HE-Meta: U2FsdGVkX18rlK2kJK/HRYHHXeeWlcpmKLBCrdNtpvOl6GiZTgfhrntLJ/41/pGsQO9q4SCRGDNhRrCqXyevOGslLNd3pHGIJN9nvAQ5b1gjQcK0j1DWXsZ0qIaj8Sfn6zbDU1KKv9PRIyY/3qMOWS0ObuaAMmoVsqyNTBJg6DRU89560PDtw+PwHeSN7L5TGQgABy46y0ZkyyHwfTtJU+5KzmNnpq+BKqgHM/pDe2Ak3bgUmHSVjRhljOpkCugc2NoQPyWvYhdiQIqclu/q6MJdWJ+h6kGImITnFXoGzwoA/SX70WRrzTzjH9KtkvKJX63ft/0bpvIKy5yCFZJb4v9uXp4AzxRz+pKi2naQuTXLNEqNcMzaDk4QCYabaD8ZyLU0lctCpn8eWTFgkGdVW18wzOgtraSpbVX5mR8XMw9dLg9t4q8s5PMgro33ZLpJZvLYxKtaOAL7WraFBzcd4IYyYHaxkbZ9h5XXGGxgFXZQ1k8um7xeTfT2lDd1KYsTjmgYfDcuW2XD2y7itIzxgdWkZ9QSnjBNjLOGbMpvzSUyYiPyceef/444gd/tuzvo+ryGwT4s+uuHPPcMyOlNEV+U+KcWv5RCMefFzgNmQvhmovMz7etwY5hvy+cMSbyRgUoSn9qjvSsgeNo3SAEEnKlGwjUNLj287X54Zk+xXBmwk4qaz6OEaAHGpx2eG5IROwFTDI4JeyZW0ChC9GVaWluZaAwZiZ3tc8qNnD75Ubu5r58u8k7jZDjVj204AcwflXEaqzX5RsTXXmjMxxMgI7o9w5j2mqkT7e0uuCs7z+xgFqYVYaxmG0sJhr4ESlfQN/fErzb1Y56fVskt8SJoytjNC3ha36UQIS8Sbk7dlmkpIkpM3TMMEanfaMYDzuMkafB6CC8cJx2wDGURDwT0/4Y+KKwAXyNSUtBTO3kBLY4ydUnGD4lGeBmcBmo1yb/7CiBxHnVdHE+Nxr7zBXv 0I5mCpQx d4qghoCIjKTk382HsMUGUCFJvnFjUddpyNnz7czdgra0CZn0gVDIrF3clgucIHDZAWEyHpUcSSSmIgc15ugi4d8jiXZGxlwD4eUrc/2pP4vbJpYAlhQlFfXxq0nUFpGFQHqkgV8QdybKNolDJ6MF812AEXOkFE1hAfFR/rQreAqRO8JwbNjmCLbIcau/VtVZNlUL9s082dJM3GtRDrhDLseAmdnrvlaRbHwxjFB8qZMqKuzCbA/PH00Jcx09V/5kZMhkXsnK8mXPkcwNL//4Mnsqyw9EnhQMQx5KIAC8Jv8KMpjOu/9PEHEssr6VIb/VjhLkQ 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: Am 10/3/2024 um 3:23 PM schrieb Mathieu Desnoyers: > What _does_ work however are the following two approaches: > > 1) Perform the equality check on the original variables, creating > new versions (with OPTIMIZER_HIDE_VAR) of both variables for the > rest of their use, therefore making sure the pointer dereference > are not derived from versions of the variables which were compared > with another pointer. (as suggested by Boqun) This should not be guaranteed to work, because right after the comparison the compiler can do b=a, then it doesn't matter how much you hide afterwards. However it might work if you escape the addresses of a and b first, in which case the compiler will not do b=a anymore, but it might force the compiler to put a and b on the stack, which has some performance impact. > > 2) Perform the equality check on the versions resulting of hiding > both variables, making sure those versions of the variables are > not dereferenced afterwards. (as suggested by Linus) > jonas