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 EC890C28B2F for ; Tue, 11 Mar 2025 16:32:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 21BD0280004; Tue, 11 Mar 2025 12:32:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1CB3B280001; Tue, 11 Mar 2025 12:32:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0941C280004; Tue, 11 Mar 2025 12:32:02 -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 DE443280001 for ; Tue, 11 Mar 2025 12:32:01 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 955771203BE for ; Tue, 11 Mar 2025 16:32:02 +0000 (UTC) X-FDA: 83209812084.06.D0AF946 Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) by imf20.hostedemail.com (Postfix) with ESMTP id A6A311C0032 for ; Tue, 11 Mar 2025 16:32:00 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=CUn4rd65; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf20.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.218.46 as permitted sender) smtp.mailfrom=mjguzik@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741710720; 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=+ATE8FIn1idDAbY9I/1HHOPz3uLeAU5hh8uGv8VJ6WE=; b=Xbs6AloXmo5fS18JmEa85RuxCd0dTQbMpBuAPLBeWsiAZVtCiKNTSqNHB9MP5ggzEnK0Wb BpAbQPBlwk6T0aRzqNNV/CEgCx9FEf4cdgV0F80VPYah6qeZpbU8YTe3bSmCWQH6s1ipWG lsZP+9FNJtdjDBfY05/WanmYyD/Lma0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741710720; a=rsa-sha256; cv=none; b=Jre8rUNF80N2pATKN/f86FvZMDcCusWpWnyi0La6HQDBq2vbkgHJHkt2UO6jtyW4YcbAGK hUrfyRPsPqQv9zRcE1a/mN2N58hrpMSCA8XA7XAxyuNq1lIfCzL/W8BAezhzlQYrFs+8SM c3GeoLP9cEf6lB6XGI0sesFaeO7EIFs= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=CUn4rd65; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf20.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.218.46 as permitted sender) smtp.mailfrom=mjguzik@gmail.com Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-ac2902f7c2aso459172366b.1 for ; Tue, 11 Mar 2025 09:32:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741710719; x=1742315519; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=+ATE8FIn1idDAbY9I/1HHOPz3uLeAU5hh8uGv8VJ6WE=; b=CUn4rd6570qIEyBhQBvQC/wyTopF4RA2qdIBn1fUzmJMoclqZ8dc5WCUPUf5sDSaKT FM2wf7HXpAXcwo43X0e7nBoDf8thoupb0WoKhb031FdifjoV3iBGAS/a+mW0ve2EsuDt UOx632e24kWAgxaKUP8R0w4LkJ4Szy/ly54jdPT5N6AIj0ESWdCma24useMuEHnvDsmT MaMMnJBPJhKV7W4c0z9u41rOelwdwUmbA4ZbU4wYCCu7nGTPKe2qcNWiJOjEFQeZgS6l ebNf5K49/OkCpmJJmbuR3mOPPsEuElNp40UXx02HT/B3XQUMQ5Myt9E7MDBGTf+XpuWL H9Nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741710719; x=1742315519; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+ATE8FIn1idDAbY9I/1HHOPz3uLeAU5hh8uGv8VJ6WE=; b=GkU4erfuPKsidBy8JbriGx823xaZIE4/4HAhkzZS+bMAzeu7ssgyT8ce2DJD8AHFcR IDM1bW+iFe/OMfzmJlJ58UybX35Xnw7qH7PEEA10dh9n82dCkiISzmOwOCbzmRp3c7lZ ic2Nu/1rQJJFk/3RjOuFprErNQZjMQcsJQSQ7FLwJn+dtcQHfSVpe27dNGWBBX1EyFBU NnPX673ipC9hPywusUzDCfCReiJY8Ey+6GERk6A+rGaxt9q6yJGKhng0opi1IaGKC6dp 9PoxzJWVBSIQcE1N3NEcTaL1HY/jS7aFIzR8RxlsySxC+Poc+dxahwFJOWzDDLKnmjN+ CvGQ== X-Forwarded-Encrypted: i=1; AJvYcCWlSyTA102LrbC62Ht9mvsNYn9IRNpzgKB2ygvoGO+0/z4sxen+lwrUGOjB9FJYUmj/FtfjNZdEYQ==@kvack.org X-Gm-Message-State: AOJu0YxBXgqxL5Carsdpip/2HfmYfmD9jJLs6cXu6pOcmHwULWWPBTfz lozPQ6pIQvs8OV6L0A34r10uFE/cg0EKktPEkV99WOhjovVu5IRM5ClWXGR352jj2K5xRw4QF+H 3F67dzCZV/yyiWC/mkoTrtVSDr/s= X-Gm-Gg: ASbGnctca4MdGHK/FVblYIsSQuNiGM76jK7ycX0HOptcv4W+d+rgS61ndk37Ons0XXZ H6zpsMp54qmV77G+toZt4UVsI7Lg3VRqxAcsFjax4uBHBDWq0Ihu+OEjxA4TsMXppXGcy1Dojxr SEUdk9YHJsOw7rEN68cqXrKbQGKwnHOyqP+iDc X-Google-Smtp-Source: AGHT+IFkUDv1TXYed/RKP7EkFBEvEatnsfHK4Q2cbOI7UioO+YULzaTLJUdD+t6lXIPwz/NXgcDX8uKZJYS2w3tMmyg= X-Received: by 2002:a17:907:940a:b0:ac2:d1b2:72a with SMTP id a640c23a62f3a-ac2d1b20967mr126736866b.11.1741710718767; Tue, 11 Mar 2025 09:31:58 -0700 (PDT) MIME-Version: 1.0 References: <20250222024427.30294-1-alexei.starovoitov@gmail.com> <20250222024427.30294-2-alexei.starovoitov@gmail.com> <20250311162059.BunTzxde@linutronix.de> In-Reply-To: <20250311162059.BunTzxde@linutronix.de> From: Mateusz Guzik Date: Tue, 11 Mar 2025 17:31:46 +0100 X-Gm-Features: AQ5f1JoMZWiUeXEqeX6qKRTppvEcZw0ZkhBYhuz300pzaSRVQo3WrdTMl602Aqs Message-ID: Subject: Re: [PATCH bpf-next v9 1/6] locking/local_lock: Introduce localtry_lock_t To: Sebastian Andrzej Siewior Cc: Alexei Starovoitov , bpf@vger.kernel.org, andrii@kernel.org, memxor@gmail.com, akpm@linux-foundation.org, peterz@infradead.org, vbabka@suse.cz, rostedt@goodmis.org, houtao1@huawei.com, hannes@cmpxchg.org, shakeel.butt@linux.dev, mhocko@suse.com, willy@infradead.org, tglx@linutronix.de, jannh@google.com, tj@kernel.org, linux-mm@kvack.org, kernel-team@fb.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: raifysxt9jxe14753oa1j5hmqip1epds X-Rspamd-Server: rspam05 X-Rspam-User: X-Rspamd-Queue-Id: A6A311C0032 X-HE-Tag: 1741710720-374270 X-HE-Meta: U2FsdGVkX183Pl9fBoDk0krKacDzwC7ADNvviMmvU6Cm3YaR8HTasuogOR91abSEqXgq/XTYHdNbxBdyQZqGaW7zZ4FSwWvt7dRSDM8ZBEFfPrRCvYSgxeNY2U/jDA/maTuTxMMRNW5XJ81O3QThu1IQnUZuOzlLy0yejIZsqd3vkLDY3TPh4IaQtxeChn4/J2hugbvLXBZ3WqSsGTc+xs85bJx7KtKQld7nj9UxiAmWCuORbK75RwJqzQPAxlixGWv935Sr5SAQP36RrZuglJs+WdtAT+7fJV758OG6dLQEr9/yjpvF+zaWGUGjLy4DqjflA7Ps5Bzf+uQLUN3RfyHqCfWngvYyPs4zVKxXMO6znDfvHtyJQttHnpHqDnNz14BglkPLsamLOgCsRN6DOIbYgsg5cfCxVgaYJ3ww5AeoyAoA5qrhwj0r7gb/KxhyXc9Gaxd9O5w+EJiZjR4ya9IdUbW1ggt/KHZfY99476AknjTCKcnjiRke47Smoo3czca70303g+XwXcyDEev348ADs7xxFFtTYsEzzC88rLt55w18unf5lI5Xyhhfbl74RSyXGtuO63vIaBYb5YbCU++EKao7gREhyKnaxCCPCRzZ2LRtE0yKcg1agv6rnVHBDBwF3Os6c9sdVdeUQNxx4+EM2T57sJwhvPZHyKiU3il8arAoYr4xqpvDn9mZgtZTEmi3+dOjscHypwcHtbXKeyhFToOcHPCT2Qb17gVrzBVwnnSmu/hyBdxJ6WBk8Z0eoZe9HMrGzYMVWEbMtcRl8OWlEVs5G6hcwLnFp4dfGz/gtfAO4drTC5KOWwupHzzyWGQdGbkxSkZpvpaZ8n+4jlnaYtsppnFtDttvaWJTI5Tl/I9IwBpdUsdslhup7U5L14wglU0DuJW6mCCLTBsgvLOFQOMYyoWzDXp8uX40pjbOuuHzeyolRHkBsksL4dz9lUfaWrexR3eXvyZkJsI Y6bGcWWh LPW2yXUUIUnwokl4csA8831x7yQ30srAc1DkoKQ/ohfFPD4skViF50WkBVGyaadSTsFikQoiBnhog4NVzdBy+PalGswDgXIiWwDm0Z1TXtTadl3XtUuV+TbN663nttIU/Y23d6XNOkqMcQLJfXNia1cheBPGfasa6EH543VzW/0DiOQGP/FfdCacVjU0Xqdey+ef+kRfg8p26or7uTzcQorDzhIUYAnut4FjfRHECvlfHL7xXLHzoK8NdndHi9Hj8Z2t0WYrkRPYq2NmFM0PCmzn9YFWE8jJSCFQLyqDASIbtXABWUBySlFcZhCnm3SHtXyAfSivUw1FJoNulfFovafqc1OzL+oWHviR8fk+TcCzuua/NF4NppCILKzinBsICXyZyZxF0X/f1Rz0blF/uTEg7S4bLHCobr7r3M45dqwAdkL+9tkbEsO5soXJWfdyvQZnkY1D6px+CfjzE7gPBd9Y8U9WRFA5/mI/r7UGbqpniXP1ZAIglUJii5Po+7xH+NcKg 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 Tue, Mar 11, 2025 at 5:21=E2=80=AFPM Sebastian Andrzej Siewior wrote: > > On 2025-03-11 16:44:30 [+0100], Mateusz Guzik wrote: > > On Fri, Feb 21, 2025 at 06:44:22PM -0800, Alexei Starovoitov wrote: > > > +#define __localtry_lock(lock) \ > > > + do { \ > > > + localtry_lock_t *lt; \ > > > + preempt_disable(); \ > > > + lt =3D this_cpu_ptr(lock); \ > > > + local_lock_acquire(<->llock); \ > > > + WRITE_ONCE(lt->acquired, 1); \ > > > + } while (0) > > > > I think these need compiler barriers. > > > > I checked with gcc docs (https://gcc.gnu.org/onlinedocs/gcc/Volatiles.h= tml) > > and found this as confirmation: > > > Accesses to non-volatile objects are not ordered with respect to vola= tile accesses. > > > > Unless the Linux kernel is built with some magic to render this moot(?)= . > > You say we need a barrier() after the WRITE_ONCE()? If so, we need it in > the whole file=E2=80=A6 > I see the original local_lock machinery on the stock kernel works fine as it expands to the preempt pair which has the appropriate fences. If debug is added, the "locking" remains unaffected, but the debug state might be bogus when looked at from the "wrong" context and adding the compiler fences would trivially sort it out. I don't think it's a big deal for *their* case, but patching that up should not raise any eyebrows and may prevent eyebrows from going up later. The machinery added in this patch does need the addition for correctness in the base operation though. --=20 Mateusz Guzik