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 B3B89C282EC for ; Tue, 11 Mar 2025 22:24:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EE5AD280002; Tue, 11 Mar 2025 18:24:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E9533280001; Tue, 11 Mar 2025 18:24:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D3682280002; Tue, 11 Mar 2025 18:24:32 -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 B5C66280001 for ; Tue, 11 Mar 2025 18:24:32 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 90F6B1406DA for ; Tue, 11 Mar 2025 22:24:32 +0000 (UTC) X-FDA: 83210700384.23.E91156E Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) by imf02.hostedemail.com (Postfix) with ESMTP id A56D680005 for ; Tue, 11 Mar 2025 22:24:30 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Ma5+mCC5; spf=pass (imf02.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.221.45 as permitted sender) smtp.mailfrom=alexei.starovoitov@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=1741731870; 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=TOAXAk2KXa+XTRWtgCfacuwFFvidihY7fqMUpjjCr8Q=; b=gWu/5hbJx66+tyLgetzfnlz4ZtgBq2dw3QzhWzHNaxtm+Xi3lcNpA1DzKkF79qnegFXhD/ zuIXRut5n8fHOcU+Ep0YmKBXd6QRnBXrWC8eIXAJO02vafVN2H6mFgxqf25urJEhHIT5TE +vXxmSfzvkH43bb6TGsu3atOOah1Bf0= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Ma5+mCC5; spf=pass (imf02.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.221.45 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741731870; a=rsa-sha256; cv=none; b=KG/5c5Rkd6kp8Avpk2i9fTPGwq9N9xAhYaUvzRX4QmLI8NVB0wo13IzMSuDE/f7iNdxBLH z4ld5qoeNV+LDfvX4ePUd4z8VgLP3aHNgM4g7vVJQAMIY/NpafxLH3vAaAiCx7RFGDOoVp B7bM9pez0gR5XeQvjxbtL+Ddm99x0VI= Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-38a25d4b9d4so3288503f8f.0 for ; Tue, 11 Mar 2025 15:24:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741731869; x=1742336669; 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=TOAXAk2KXa+XTRWtgCfacuwFFvidihY7fqMUpjjCr8Q=; b=Ma5+mCC5bQhfEXKnrE0M9mcnS87Jc2dF6dh1Gj+KjuGqDbIhMN70sQGAILE0+njKSz vzpdmEu4JyNNDMBv8z5G+IAzjujAbNSzKtUmMRQf8bam/rmSm23DgEeGjt+KlhfVXPtP xauhhEJGuBhA1XceOtnZbusb3GQBPvXeW7a99So+DD9KKAJzfDQ6i57LzKKXyzvajkWc +fxSgGk4pBlM6+fTTKln8ooExSjeCiAbEQPr5UsL5ZLiI48tNI3YyjfuhbVkvrH4/MAD XDa44E9QpZ6N77Tvd8Rjs2dbsUmzuZ8S0FwedjM0jP7g1MvcLYuCiq2K1PLqNwvDpg/h rmSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741731869; x=1742336669; 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=TOAXAk2KXa+XTRWtgCfacuwFFvidihY7fqMUpjjCr8Q=; b=uo5fSdYpBREjBkWi1Dt9+ehaPYPx5zmsBiERsd5cY47n4ywej7rTogjpnvhadtf16y GFGn5XlUiAFdD2ZGRp7rZsPcA8tZwIF49exDqX1w8VIjZgr20kKuQo8yLzg1qCcLXTpY GFeF/I0J44Zd3Avo/aeiCNIcIAvPKGDLjFRuaGO+UG0dxjgWJMvlhbCnLmpzMGENcU6/ t63umYT6+deIT+U0xc8Kg6piQoDdZoufI6jMBHflWmgtr1kdsWJX5Fr/2oxiz8amqwR7 evbuv3iUpHSH/1s749KAzMYAAzcPMW66ksHOgUQPUtvLxIePsA2VJWBhgEy8a3gvnPj7 ZApg== X-Forwarded-Encrypted: i=1; AJvYcCUQ7DzjuhxvJYmEG8La0MSSw1TjqbDipekehfPNa0z0ZPqEXaIFx1cvCtKVwGtNzMo3ts250Rdmmg==@kvack.org X-Gm-Message-State: AOJu0YxDwjDhIG0exqgkN4f2Vxiyge60lgbtJkePDH7i5Q4PgRxtzQT+ qghs2heEHIcS/YctoV6wA4m0LIQibDbr/BRvKvsDxszCIy0n25G8F9/+hQ5v+eBb7yeCfuCt8A5 lmMnAOM/mYJr0umDXy/ig0Zb9INc= X-Gm-Gg: ASbGnctxeHh6m40QgBJAnuuySXOJjppgDbvQ8zZ9bnFk1ioTO/6iRGgevfMs8bWux3s a0lKzIwf9tYY9z5V0LEOvowf3akdEdCLfbnG8HlyWxp2a8Zt52ndNfNqnZBsNOV34uET0tk4NG2 wlnMP1ILS5dqZPqGc2n9RT6tMyPA== X-Google-Smtp-Source: AGHT+IFr5cNLKtyEHiIseRQ0hcMIRT9PUhdSGq8vWKKtjVW+w5dRZcSyz2nZIgB4AIRZ0apB4EK1xyVdI49AxcjB4b0= X-Received: by 2002:adf:8c09:0:b0:391:3915:cfea with SMTP id ffacd0b85a97d-3913915d3c9mr9460157f8f.38.1741731868893; Tue, 11 Mar 2025 15:24:28 -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: From: Alexei Starovoitov Date: Tue, 11 Mar 2025 23:24:17 +0100 X-Gm-Features: AQ5f1JrBx1xboasj7wpVadRwAZkrWICF3qXP1iKeT5lMrlXWHmypeXNk7sXFFeE Message-ID: Subject: Re: [PATCH bpf-next v9 1/6] locking/local_lock: Introduce localtry_lock_t To: Vlastimil Babka Cc: Mateusz Guzik , Sebastian Andrzej Siewior , bpf , Andrii Nakryiko , Kumar Kartikeya Dwivedi , Andrew Morton , Peter Zijlstra , Steven Rostedt , Hou Tao , Johannes Weiner , Shakeel Butt , Michal Hocko , Matthew Wilcox , Thomas Gleixner , Jann Horn , Tejun Heo , linux-mm , Kernel Team Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Queue-Id: A56D680005 X-Rspamd-Server: rspam03 X-Stat-Signature: wie8phototg4qzdx7zy3pkoe9ob59qyi X-HE-Tag: 1741731870-439752 X-HE-Meta: U2FsdGVkX1+TPtEdpGgqcxUTnFkKzfW6cLy0jxSxb9+w2cngIpwFsy7rfYR8BEfz/xqmDik4yBUXCOkfTKn4JlRZ6dA4iLQ4478YiT0iOFf+3E1YdwkgSDAkQokjabluaz64n5U3QfDBcAhBl7PEa/cj32ErKff4dSBSJspLSAoDOk8XnVmgpJBp1UPRT5ShGc9QX0ju9BRGknl2Mxa/7+UmcMCCHg6yZH2Z4IzZA6dipBFm+8cXemOl6AwVjEJKnzQHwzpmM0ipQ5QgJ53u/80E8wH6OzhEtYYjPmeJmDM4fqcB9K6CIrgOMGi3DVbox0K4fwbFPv3G9dSkO/8M9Oinh23aBWGuGwBSFnU9yKlYGPgzKlRFujnrZ/c47T70uMzTYJ61mX0uelPcXI+uBbTdRWFg8Ly3nxQf/JKOt0nygRQjB32tS4E2nRnTr7NN9A3P3X3Gk+Y8J9moL4GTRR9VcQzjUjKrlFD7W0RA0vrOcq3hrVRwdoOQc3c1gf+m5iSPXEHWrgFfJl2Pubs7uN0DomSapPIbi8CvGe+MJguyzQEIZCVWk3I/GTvXBlLYI9lxFX3lupNy4/tkHFhtq5Kwj8yLI3b//IUagyZtKpt6Bc586/LMJFe5zKbvBTWKoR0VxsZbGZ3Gy/AYUuuei8Ht+pgPTP2uyekfLuk6t7TPB0Fh4bwqPxwFbs9ARZrmkf0pH0b7wa9Lpo3xBj4zl5XboQX2CUJGbyDX+03dVGuir5Uc9tsJqE1mOLRQcPzWtrWyZy2wesJO0O2AZED+u6I234wfJvSpLL9qd4vaj6cqI5FUNS/SNngSPB8JWWGjGxo+9RtGXx0QZwnPNOQRzZBhznDPqFRNlAchjObYBngsa618lvHiZlzmoj0gvmORVIowco3C3aWuOVbSkDucex8Q2a6OXR740c+JMbopp+VgZNTCirKh5svFee+D7qeRQJorzNdB4EtWov+UjH/ tNws1+G+ pwr5+99XhjckDY5MaPrx4Wru5zkc83Oi1H4sTNwAXNAVxd0F/kvkufju8fRzg+y3RBDtdMggPnnSjoPrYQT4xgRVcVVd5HEOfyqTk0oZS++ZZQ9PMImfZ3R1xit1z8kTI5Nfg8QPts0r19zdzfMw4kdoccPNA+lzXuUJ5FXyUmZF6ZdPGzjqZlW3ambU4Mv7hEs2Pc+XqPDBl5inkjwC3OuZRT6h91pBDqXednkvz0rHTY5CQhqKJZOZaj2msiIb5r41QCQISBrmDYdpyDJfPoSqYSvHqO9iMTKHLbC9ggot09M4jrrEI0SD2ohs7fXCoVPa4sW9Jnkg9SxNEudfwQbZMx7ejxnirGXz1M5y5FKKgMEole4yxOgAksoMKRucTtoaIiNSKt2YICek8nSIatS/IVgKpOTV0gv2vs/1U7hXseRbcrKVpko+z1gPH43YQN3DX 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 9:21=E2=80=AFPM Vlastimil Babka wr= ote: > > On 3/11/25 17:31, Mateusz Guzik wrote: > > 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/Volatile= s.html) > >> > and found this as confirmation: > >> > > Accesses to non-volatile objects are not ordered with respect to v= olatile 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. > > Yeah my version of this kind of lock in sheaves code had those barrier()'= s, > IIRC after you or Jann told me. It's needed so that the *compiler* does n= ot > e.g. reorder a write to the protected data to happen before the > WRITE_ONCE(lt->acquired, 1) (or after the WRITE_ONCE(lt->acquired, 0) in > unlock). I think you all are missing a fine print in gcc doc: "Unless...can be aliased". The kernel is compiled with -fno-strict-aliasing. No need for barrier()s here.