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 1F298CCFA16 for ; Mon, 30 Sep 2024 18:53:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AC3C528001E; Mon, 30 Sep 2024 14:53:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A7475280017; Mon, 30 Sep 2024 14:53:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9145228001E; Mon, 30 Sep 2024 14:53:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 73047280017 for ; Mon, 30 Sep 2024 14:53:10 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id DAFEE4071B for ; Mon, 30 Sep 2024 18:53:09 +0000 (UTC) X-FDA: 82622302098.22.D50DCA9 Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) by imf02.hostedemail.com (Postfix) with ESMTP id DF8B48000E for ; Mon, 30 Sep 2024 18:53:07 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=rowland.harvard.edu header.s=google header.b=CmyDk2En; dmarc=pass (policy=none) header.from=rowland.harvard.edu; spf=pass (imf02.hostedemail.com: domain of stern@g.harvard.edu designates 209.85.219.44 as permitted sender) smtp.mailfrom=stern@g.harvard.edu ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727722368; a=rsa-sha256; cv=none; b=ULbXXYWJob/tNnDXGbx88Js1V4/gRNjJirrCcLrTZQP9gn8Z3XbAOjU+lTnMcQcMu2TnkC W3gU/JUqcS6e6BdoH6Df273Zma+vqh76CwpxR7wIjK2CUXDk+uaevAofwdKrRlSGwOCrpN v5nYs7AgK18lxOoSLLK7tcQiyHE5fic= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=rowland.harvard.edu header.s=google header.b=CmyDk2En; dmarc=pass (policy=none) header.from=rowland.harvard.edu; spf=pass (imf02.hostedemail.com: domain of stern@g.harvard.edu designates 209.85.219.44 as permitted sender) smtp.mailfrom=stern@g.harvard.edu ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727722368; 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=Q3nc/E6veIr73qBv2y/aevoRhI95QWm1Rj9HOPT08sU=; b=rchCkS8MLK7ZVxbMhHU/P9uvCV9ARMOlXHvQzSvvOffdclilDpSRBpmeEGmrcl6dpNc5Ar rqS3PY1eU+c/HfxH749byE+90XrUSJ6s9RUpzLWFl9qNa7IEVjZKI6MRSFQR09cpcB1ClW bagLY1gLVmX8OCcX3xffByfua1f9Q7A= Received: by mail-qv1-f44.google.com with SMTP id 6a1803df08f44-6cb259e2eafso39390996d6.0 for ; Mon, 30 Sep 2024 11:53:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rowland.harvard.edu; s=google; t=1727722387; x=1728327187; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=Q3nc/E6veIr73qBv2y/aevoRhI95QWm1Rj9HOPT08sU=; b=CmyDk2EnV2KKjnQN22lcwbEDH/F0O21Qih64jDVXcNzfUFnlBQsccgbErJYYMMkEce fWfxMx+x01ekHoAkliXf+FT2KrYFHQ6dfoMaSXQKK9tqooE13xDxP+WQNil+bPIEYuWh pP7ij8Ba7W3r9DLy+EBt6fdVHF8hlp2vEyDuLBhHWdqfs3gSxxQZdNwaIYlZpPFqse9F bf4q2fQwcIVgAymklyaK1f1PvYztQbkhsj4DKLjVbNSmnsVYylSlGoL8GLD5L1hWHC8b 4q5HqQSMRqjYxf3WUpg7WoiJvI5TatZ/r2wm6RBixBIYGUc94tOTehZ2FS7P0P8JgLio sMdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727722387; x=1728327187; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Q3nc/E6veIr73qBv2y/aevoRhI95QWm1Rj9HOPT08sU=; b=p8niOo+zfdnTmEyAUDY56TPBeH+M0ii1799mME9BOTxPeV6YM4lxWDFJuZN3Why/KR Q4BpIBP8SBuIZZ3GAMWNTOv9eNcag9BihnECTvPg9ljcJ7Y99X9r8KodqiUX4mC8CJ7h 1051tYSe8GfeyZWKEB4Cb3ougP7xO2rTTQlVVQuxOETX5qrEXdArXMfWIL8OhybmBpFW OqICgp1cWvTeWRLOZ0Yna3u+p4rWAn5Y/HfUVeh+/ytCcDhBFitL+MQdR3jMkHsZTGOH gOvy0/OCJcOJxv6LFJaH79a2WNx0EbBL8SHOdVsddbwXLRnntj6WR6aBY7KBys+DNgNG EE0A== X-Forwarded-Encrypted: i=1; AJvYcCUo0rclJXrekM98F1d+h2DoOk3MoYuJOXJh4H7wPArx6BgWA3EcWpfC0cnCcIueZcEUlTKcVbrilg==@kvack.org X-Gm-Message-State: AOJu0Yz/OSzkB8n4mNZoaLMH9PUdesPoEGFEl6DS4pVhnQ8PpHq2CN46 c0hVeeDSsDRme2/Y4p6tdXqrpKMFnBJAxFSrKUWS6qwk2cMlevpx5cHv1tKpww== X-Google-Smtp-Source: AGHT+IGKwCrS47yaTQ0BeOhoXQcBFlAYv3nhqHOPGUF2suoHUqsJsO84VsCTi/F+Qxr0yXZrYyaBIQ== X-Received: by 2002:a05:6214:2d13:b0:6cb:3be9:1816 with SMTP id 6a1803df08f44-6cb729e7801mr8703456d6.24.1727722386910; Mon, 30 Sep 2024 11:53:06 -0700 (PDT) Received: from rowland.harvard.edu ([2601:19b:681:fd10::5638]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6cb3b67f247sm41724056d6.107.2024.09.30.11.53.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Sep 2024 11:53:06 -0700 (PDT) Date: Mon, 30 Sep 2024 14:53:02 -0400 From: Alan Stern To: Jonas Oberhauser Cc: Mathieu Desnoyers , 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 Subject: Re: [PATCH 1/2] compiler.h: Introduce ptr_eq() to preserve address dependency Message-ID: <82e97ad5-17ad-418d-8791-22297acc7af4@rowland.harvard.edu> References: <20240928135128.991110-1-mathieu.desnoyers@efficios.com> <20240928135128.991110-2-mathieu.desnoyers@efficios.com> <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> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5d7d8a59-57f5-4125-95bb-fda9c193b9cf@huaweicloud.com> X-Rspam-User: X-Stat-Signature: 1mmzehx8ug8tr49td34qn46abd7c9z75 X-Rspamd-Queue-Id: DF8B48000E X-Rspamd-Server: rspam02 X-HE-Tag: 1727722387-411969 X-HE-Meta: U2FsdGVkX18UkjG/Ft8Ccm049IrzGO5oWHKoSF9n6sa3XU8t+anUxWb9kebN9PBaCnTkVjGwaPs8cUuoVn8c7Sx+E8m1LhkV5Ou8BXsOuxAWFlw//jXDNxCVLS7MDNyzmP3wADfhrnB4x3R5o6lX/b/s9bDIXd4DAp6zddokwR5HSIyQOQQjFS5pLCphg6upspOZOIzI7dfnjUE1o0q98ys3QDAXAw98dvTxuHpruhKNZy42th545lX+Fr/FN1tzmDvkMTRDWaWHOIHd9r6CLL/5cxRSEMQTiSEfjTUScQhe5rpy+cJeSW8YA7RuhspX59kqU3wzfLH1zIgcjKz2kKFzpP0y3ga3qHxz9PTbFsB/stVdmI8rTlti7hcT8eEzqwtDZw1dZOZnnUm9sDBOa9y1HiDtL5qESCvi6UAy1J9GwklT+sWbyJ0TJV4b/V5Z9txE5HSUIAVym8ZBC5tqBuT1hLLQYmYadNBL5KReh779HgPnY3v6ptl8VFRQ9/VER39pUVmNJXryGCccmtjnzFT+t0PnqthTH/FnxUBgVirxaK3BBxWhR5JqxaeaqLFj67gdgHReeVox64rB8nJ8n13Pl0zWzl1skvKLOMcm1gvTaOZg0D+wn1WJgtiMdR/JvtV4hMgLnPCaGAMc1B+Nb7w5wPdO9FG88nJ4VOQULZb0NHZPizgSw1MxbVe3InBxtJLhgoLsXmMZOZu8PtLsWvma5BvWSbm2S0uZ3vONEVtymcdo7N7T/3HJuxkRnHp7lf4f+fR6JmnowRcwdmC0DIDMrky42bvwgyefTWbV14gIvD2uJZS7HZ6hN5TM58Aw/god0z9qI8x2CIS7uM6fm6qGjFcIdee1gYXEZA5BT7+NXy+3UUvXg4ExkNfFDHVhPHm9mn68AH7xqp8P/X+eu3BYRCTLafIUdqua5yV2uFDn9firCIJXUGhLKoDJ04oEWo9kP3k/pOAfI9SYGQ6 ZxSwfMhb XprB3E1rPUCDPhX2Xw3Oi88Jj1j7VubUfnrCJEepVFydHWQuQoPHB3fcibXSIWyTsD39/QMHZKQxEetm0dgugVmVTH82QjvnoRdbRMEP5dJjCX9r4Bn9QAjXXYIvzfTiYgsAC9yX7QQLy3/2N2cTacNTEjCImAWpaqlDhA82kI4mv5/MCl8smLdtjVcIDt6ligQ6D8h0YeNoi/lop1Wx2iNa906O+rm+8FdVMufRnD0NQLeIPUnIAAGnWRIoJxu/7PH/HaEN9rBUdKza1PshYbXmK30FuF/GcFcc0p/QA/DZwghfvl56E6lSrECKj3A69zQRXvPtb4FoNudTnnm+MweALpeeFvLwD5DP29KXjQCAQJc0wurWPW0gaSscMF68pJJ0atNOEHRc7cDhS0zRGH9GEABzfih4WPhHeMTuhyv8dsGKSg0CQU4Zx3+BOQndXgv7hbkWSr9gYyas9rjPeLF+BoTlJek+W+cjMbrKhuPFotL8Bu76rVS+SfuoSbJTGJZeEpovQtlf/ca9R/Wcj2lKIhOeSPHZ0gvWids4OYCusoK3t/tWRSLIhn2/MULwx8AehoIwx0flGHHwgEed6wGOManvG8TmX8RPR5/DLCZSYP5z4nq34T4xpfHm5IE0Lnz0pxuQtX6yEl7WJm77k3XCtyfU7yHqI1n7e 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 Mon, Sep 30, 2024 at 07:05:06PM +0200, Jonas Oberhauser wrote: > > > Am 9/30/2024 um 6:43 PM schrieb Alan Stern: > > On Mon, Sep 30, 2024 at 01:26:53PM +0200, Jonas Oberhauser wrote: > > > > > > > > > Am 9/28/2024 um 4:49 PM schrieb Alan Stern: > > > > > > I should also point out that it is not enough to prevent the compiler from > > > using @a instead of @b. > > > > > > It must also be prevented from assigning @b=@a, which it is often allowed to > > > do after finding @a==@b. > > > > Wouldn't that be a bug? > > That's why I said that it is often allowed to do it. In your case it > wouldn't, but it is often possible when a and b are non-atomic & > non-volatile (and haven't escaped, and I believe sometimes even then). > > It happens for example here with GCC 14.1.0 -O3: > > int fct_hide(void) > { > int *a, *b; > > do { > a = READ_ONCE(p); > asm volatile ("" : : : "memory"); > b = READ_ONCE(p); > } while (a != b); > OPTIMIZER_HIDE_VAR(b); > return *b; > } > > > > ldr r1, [r2] > ldr r3, [r2] > cmp r1, r3 > bne .L6 > mov r3, r1 // nay... A totally unnecessary instruction, which accomplishes nothing other than to waste time, space, and energy. But nonetheless, allowed -- I agree. The people in charge of GCC's optimizer might like to hear about this, if they're not already aware of it... > ldr r0, [r3] // yay! > bx lr One could argue that in this example the compiler _has_ used *a instead of *b. However, such an argument would have more force if we had described what we are talking about more precisely. Yes, we do want to prevent compilers from doing this. I'm not sure that it really needs to be mentioned in the comments or commit description, though. Alan