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 E9463CE8372 for ; Mon, 30 Sep 2024 16:44:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1D768280009; Mon, 30 Sep 2024 12:44:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1875E280003; Mon, 30 Sep 2024 12:44:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 00065280009; Mon, 30 Sep 2024 12:44:01 -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 D41D1280003 for ; Mon, 30 Sep 2024 12:44:01 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 53831807B8 for ; Mon, 30 Sep 2024 16:44:01 +0000 (UTC) X-FDA: 82621976682.09.4FACD8D Received: from mail-qk1-f170.google.com (mail-qk1-f170.google.com [209.85.222.170]) by imf13.hostedemail.com (Postfix) with ESMTP id 7917920002 for ; Mon, 30 Sep 2024 16:43:59 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=rowland.harvard.edu header.s=google header.b=WMDHGub3; spf=pass (imf13.hostedemail.com: domain of stern@g.harvard.edu designates 209.85.222.170 as permitted sender) smtp.mailfrom=stern@g.harvard.edu; dmarc=pass (policy=none) header.from=rowland.harvard.edu ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727714514; 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=cOmsLRCNGVCtqpLkiEPmqmMJ6TKdIvwB/jyhOC3obpY=; b=TiFyXtbL9+4G5Q2CaoDHLRrvqYTfFLgdm6GUGorDhwvDGrjt0QxkgwJji5JnT0XdaVrJQd u2XeUzzhEfS8LnO1Cmq0HRAp9OG17c0gAPFlgqdfKCUm6HH6dvdIr7nmBV4LffUE1myfiJ iQEdNX+Sc8DQZHIelcxVUP/+xuo4k/g= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727714514; a=rsa-sha256; cv=none; b=ohu7VBTYrY19iswR4EGo7wRDM5LfEXyfJfhqlJy+iLvdfxC8NgehCpFjBTSSEhnef47nDy i9dM+dEaZImZhVdjRPZCJZ4NxZvkWIayoXCe7Sr4sXHBGfDh8V0UQ+Lm++qO2YF/T0XZsW FNtpMTDKmLapth2qo13UrgaS/AugPqQ= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=rowland.harvard.edu header.s=google header.b=WMDHGub3; spf=pass (imf13.hostedemail.com: domain of stern@g.harvard.edu designates 209.85.222.170 as permitted sender) smtp.mailfrom=stern@g.harvard.edu; dmarc=pass (policy=none) header.from=rowland.harvard.edu Received: by mail-qk1-f170.google.com with SMTP id af79cd13be357-7a99e8ad977so383160085a.3 for ; Mon, 30 Sep 2024 09:43:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rowland.harvard.edu; s=google; t=1727714638; x=1728319438; 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=cOmsLRCNGVCtqpLkiEPmqmMJ6TKdIvwB/jyhOC3obpY=; b=WMDHGub31j768xoi95OvOiYWMZ1GfpdChpSbBck5286o2+f0kowfwYVFPteE0lrv/c Tnj1vds3+izRw8m/BQDhIws2IGhi1G5XEYjLTDhHtNtjgjRMc7P7Xg77u1KGNkErieEx SZlE20pJZ8dZ4TCwzPQnExxX/bSzpL4ePXSFn84GGAbx1G50f9KB8y84hYX/xgt0sDgW LMb/sZZ29RjiUbTkCmwXJ3e573Td4oazus8banam/dvkWFEuY7oSpMZ1jee8SgZn8Yj1 qGIaLqpkFh4uh12dWzr+Z0Z0JVSqGOk4uzVvdnFbC7614YdC9h+5kVNZ6ApkWfRCF1V0 BPAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727714638; x=1728319438; 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=cOmsLRCNGVCtqpLkiEPmqmMJ6TKdIvwB/jyhOC3obpY=; b=I3ISCAbnpccEbpO/Sj8SXIWuAaEP2MbB/r0qE5yc8N+HmcC9bKZx+RdyPj4CdsCrR6 zYSrTHXe1xS7OUDJqRxjsKL5GnB77v3bG9p4GluceFFzjDMUXqIVTjYMB1piwV2Li6O4 fIGtsn/aJf3sl39oPTxs+nBn8yK5v5BzSov8u15J7uSnUUBBKfQJnJC357dUEh5tGeFE HvzTFx8AD8spHWjJFhDh1t+lYYiqQajyjhK/mqYIYkrm+CsSP2QEInnp+ZYmqsNJgIAU 2Yo16OHvk7O8U5MqSqZ9rbCO1uzVZqTMkLeT4++7qzv6bEq5M8Cu0F+ZK/h4ASmJama0 4Hmw== X-Forwarded-Encrypted: i=1; AJvYcCV+zS6KaSqdzzJF7JBNbKRcsLf/a1O/vXXbc5ZsyLsXPSXJVDYmsISOr77a3OdAV1yZJubybWio4Q==@kvack.org X-Gm-Message-State: AOJu0Yz6kjFt+K/jMB9Rt27a75/gLevCt/V/UebM5VmZzYBhze+obnTy lMARlyCcDFd+j8lk2QiriQPmfxfbhAtDR9pfd/X2aZvSPvTk4nDImhQnYqmcLA== X-Google-Smtp-Source: AGHT+IHsEwT5syMe6xjkTSTWIhlO/HTJ7JUiinZyPraGC1x0RYXykQwqYqv5YwDs8lui9gvfUyrG4w== X-Received: by 2002:a05:620a:6002:b0:7a9:c129:4e5d with SMTP id af79cd13be357-7ae3b23c2d9mr1634819485a.62.1727714638513; Mon, 30 Sep 2024 09:43:58 -0700 (PDT) Received: from rowland.harvard.edu ([2601:19b:681:fd10::5638]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7ae3783fdd8sm426543185a.102.2024.09.30.09.43.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Sep 2024 09:43:57 -0700 (PDT) Date: Mon, 30 Sep 2024 12:43:53 -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: <2cdda043-1ad9-40cf-a157-0c16a0ffb046@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> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <9539c551-5c91-42db-8ac1-cff1d6d7c293@huaweicloud.com> X-Rspamd-Queue-Id: 7917920002 X-Stat-Signature: snr4cxhiof8bnxia9rsuioryh3jzn9rp X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1727714639-439674 X-HE-Meta: U2FsdGVkX18EQ16Y5cTth2BE5ezrl87Ead1N2iodDICaG9z3zgRZOO5qD8nladQx3B2cd529gdJEhD9pLWcZ70QC5bOxcPWk78xwrnOFcMP1S2ZkkH8gXrn4gtM92mG0xGBxJXh1I14vVp9I3/uJ3bJIe5mC2GX0c+HTbQZ6HWq0Wwi5JYJlMqjAPrMIyAQiuYR+30EDThgFWwB+PYNeYnzadXo0okUaA1xJp8it30+Xhe9AjbGSyTwuTVpUjH4hFVeddhC530EJn4wQjdyHtyHM66PfCdYIsv/OGvA9g6GGyMy8OsdLfbh4QV9O+uCVV4ZTJb09zim6pbDAMlmE9DqtBLHF5TmlLCd97X/jTL3E+jz06Sy5pN8dB3N/cY+CY2ft5Tiaeq8wd5Cl6e15lwx7c7G0DCraWcixbtxwA+wMsMD8XR+G63ars+Mq+hCIBXeoHAI954yWOIpv56FIvtVZ+HQTqC4AgAhC890j3cfeX4VFEZoGaRCNwJAc8vaDpwoDh9nYrUxvvRP5A7mzvXz8grMrnR683INZ1pPbSH070CUNXawo3KMApIvETusrN6MiyF53HAMcQsNmmDPfLcuULR1ZNkH5r+noeS97cngQRnbVSUUTZJsEGwk53PZ9sPA3Ljy4OK0Rw4VjkxxQaeaKf+JtXaJM+waTUwDn9Wxhb/mxtcj8YG0c3JVvrblRnbq7orOiyGsCtdpP2gckbkCh/WWb4gXA9vKKA4nrjAHd9UikpOVobpB7y3OfD3t5P1strWR449adiVWEdZfF6+2a3m9wgEheyilZKv4hvUjTA+TONpRjEE8XcR6UNSbYG3zpyKkZAlkrp+qmtUiJQnAUi+E+qvhpuAeZ+sZ+yWnuNQkgh82qJfQ6CTtXHa6k6VzhUPB+iaWedZWAO3PLMUkea9UXQKm9Izpee4cFyjuW5fyjaAoNWM4NkjtSwYI4ncSIeQu+4Pi406wkCrm 02zMw/9I lKPW56nrxKeUGC/uSq8qOOH07G+ZYdx9qHAGaMW0M0o1PHQoMMYcixEKaN1ulFHBUfjIeUs0LRdaLGW7m/pE+esSNHXg+cAIsU8CSQUQ9tu5ROA+bDSDLQhGspZu285QF/RjQB1NG/y5exxZKubqRpW5BkSP+rc98F1K2taG2TzyXyEzVBQDEPsrglo084zteURMfrw4OTqN2wpWIHJa2jaCM3miw5MF3psh0iGiZkZavFDJxZKDH/hPiaJf09PRr036nhDyAnG81R3XVKoKAJ03CyZ0xN1ZdnVrCCVJZ0m5VJ5ps89fff0cr+XVM3vi87/pL9iHMEMgV1FEu3bwUHpYvS7o3C2mPI7U8sl+yLYyMVHkhkLDngojyARwyapMocyVW4xX1i4hmGwl3mVutDwJFnlQj76O1qxsWsuvX08zs3K00y+5qxwdEmXF6ivqxMpqiZUUwQBNbmhHVtk0JaTzj51HvbChDzwbit7gmZ9RnaTEUfUZAOqeeBFLghP1tF7J8zeTxKt5fl+RrM+7TBgXK0QoAY+sFUc2uyiFsrJywgvz1ajUSQRZsIV5x8bHd1Ga2pdsCYywKQIbbgjzRBhVIHgRzLQrMkVMlPmumSf8B8M4xZfYuA/IC3yzxRkvNnpgY0NFPLdB0Yche8DzJ7baxLUtdjezmnbdN 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 01:26:53PM +0200, Jonas Oberhauser wrote: > > > Am 9/28/2024 um 4:49 PM schrieb Alan Stern: > > On Sat, Sep 28, 2024 at 09:51:27AM -0400, Mathieu Desnoyers wrote: > > > Compiler CSE and SSA GVN optimizations can cause the address dependency > > > of addresses returned by rcu_dereference to be lost when comparing those > > > pointers with either constants or previously loaded pointers. > > > > > > Introduce ptr_eq() to compare two addresses while preserving the address > > > dependencies for later use of the address. It should be used when > > > comparing an address returned by rcu_dereference(). > > > > > > This is needed to prevent the compiler CSE and SSA GVN optimizations > > > from replacing the registers holding @a or @b based on their > > > > "Replacing" isn't the right word. What the compiler does is use one > > rather than the other. Furthermore, the compiler can play these games > > even with values that aren't in registers. > > > > You should just say: "... from using @a (or @b) in places where the > > source refers to @b (or @a) (based on the fact that after the > > comparison, the two are known to be equal), which does not ..." > > 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? Consider this litmus test: int x = 0; int y = 45; int z = 0; void P0(int *x, int *y, int *z) { int r1, r2; r1 = READ_ONCE(*x); r2 = READ_ONCE(*y); if (r1 == r2) { WRITE_ONCE(*z, 1); // L1: WRITE_ONCE(*y, r1); } } void P1(int *x, int *y) { int r3; WRITE_ONCE(*x, 45); WRITE_ONCE(*y, 56); r3 = READ_ONCE(*y); } exists (z=1 /\ 1:r3=45) (* Not allowed *) If the compiler were to make the extra assignment (basically, uncommenting the line marked L1) then the exists clause could be satisfied. That would indicate there's a bug in the compiler. Alan