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 76821C28B20 for ; Wed, 2 Apr 2025 07:30:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C3411280005; Wed, 2 Apr 2025 03:30:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BE38B280001; Wed, 2 Apr 2025 03:30:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AAABD280005; Wed, 2 Apr 2025 03:30:38 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 8DF2B280001 for ; Wed, 2 Apr 2025 03:30:38 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id DD1A612129F for ; Wed, 2 Apr 2025 07:30:38 +0000 (UTC) X-FDA: 83288281356.12.295793E Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by imf10.hostedemail.com (Postfix) with ESMTP id F3264C001A for ; Wed, 2 Apr 2025 07:30:36 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b=mR42XT3s; dkim=pass header.d=linutronix.de header.s=2020e header.b=DVtYkEV4; dmarc=pass (policy=none) header.from=linutronix.de; spf=pass (imf10.hostedemail.com: domain of bigeasy@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=bigeasy@linutronix.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743579037; 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=RXtcAx1AeN+/JvHrdAZySYO4yqdnChpgf0vNyoi5guY=; b=hKsck/QMpq/720uplgnMv/rCqWjXqxDYBoafXEcMoLP039iKJ5blWmEKrKcCSoNlHltTQC YuBCxYjgKRBegIImCw6S7xVVCcP4KIvxbFamHLCgQlLrwXSlFjQBwql64pSiYEjIl4D0Dt kFbwrSZpeyv3XVQYh0INOl6W0anl4Lw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743579037; a=rsa-sha256; cv=none; b=SCKsaKv4uPYLDI6Ua18B5WrbhA5Q0BLLXHtnwJuOyuF9umgQULyFIemcADQZmL7S/XT1W7 IRiK18FHAYFyFhbau59R0lqoP3A+p5atYhodMEqUJktFx3YG9W0PmGMEobClN67T9Orymi t1cH7xmDXXj9uXUktG3racx+sepQt+o= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b=mR42XT3s; dkim=pass header.d=linutronix.de header.s=2020e header.b=DVtYkEV4; dmarc=pass (policy=none) header.from=linutronix.de; spf=pass (imf10.hostedemail.com: domain of bigeasy@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=bigeasy@linutronix.de Date: Wed, 2 Apr 2025 09:30:32 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1743579034; h=from:from: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=RXtcAx1AeN+/JvHrdAZySYO4yqdnChpgf0vNyoi5guY=; b=mR42XT3sDNPjCgp877WuXrC4rpRnJI0KAzQ6SozV5L6dyk2q634cKnhSx10IViUw1meTgV O1zdMkAWxhcqSm80BdEbAtg3U9p7X0wE9gCgWfo+62s4XiIVTObB0Ug9aAk2tEWL+R4v+s WKgW+lXVlq3t0TLRrSmAILiGrcIHzAbC3fhrWxge7gvySOTzZ6EdFVipxzyNSZr53iAxlX 4VFVdLuyeWC/FOqs6Nhmj1/ChZ6g0t0SvEpuRJ8oeKutQ0krOACsfHM0hi9nkMBmsGL9+B hpDf0Wu7Gskcc7qbLVgSOPPBtTAlxDYcBDZ51SrQakXEv+lEbr3APlzz4y7ztA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1743579034; h=from:from: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=RXtcAx1AeN+/JvHrdAZySYO4yqdnChpgf0vNyoi5guY=; b=DVtYkEV4s4clT/TiIJhH098C/kbVMfv0xsbvYmhu/GtOrxdlRvAOatc0Lv8r4dWRm+NM/f xJ8FUa5dDEUYrnCA== From: Sebastian Andrzej Siewior To: Alexei Starovoitov Cc: Linus Torvalds , bpf@vger.kernel.org, daniel@iogearbox.net, andrii@kernel.org, martin.lau@kernel.org, akpm@linux-foundation.org, peterz@infradead.org, vbabka@suse.cz, rostedt@goodmis.org, shakeel.butt@linux.dev, mhocko@suse.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] locking/local_lock, mm: Replace localtry_ helpers with local_trylock_t type Message-ID: <20250402073032.rqsmPfJs@linutronix.de> References: <20250401005134.14433-1-alexei.starovoitov@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20250401005134.14433-1-alexei.starovoitov@gmail.com> X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: F3264C001A X-Stat-Signature: j75uc9w46fhxoohbab6jwe3oo1smdtz4 X-Rspam-User: X-HE-Tag: 1743579036-669127 X-HE-Meta: U2FsdGVkX1/WlHPiLmWc1r8ywxHU8fsXCvPiyTQEORfpuW6bBLmLbpw0Jh1VN+ygI/Yl4IE80iKS7BorvruE5O2Enj0x5sawQZsoK/UNq7tDkzgC/RhKReR1GEPms2FuFtNxU3aT7F+EWrbV/lqdy+YqXO/UfIXGU7cEmsph4Dz4QUKF9lqtEGCRD0N2pCw51qq8szpwF+YHyqYHEeiZwGq/AW2fSQXmc3Oi80+vyuI5BzHKtJK/bTsjgQuwPCR9zt1UeGEOVWNZYEBGkqghuWpsD8ihbZy0dbOQxmIXdQrxD4UYP3exjYPwUzLxL12oWDIEhznMG6RgWNYnnD1VzfiIzMwkCOhc5o6Ty0jpTrWT8hQl7bVLUx7Ng9PfVFhNIrxODe1NjF8T/HPZ68QLCWRWu9OyaBPh6fsfYLTMBcbzjLNDxXE24Po49YxHTJU6PLz5NLRIBK77HES/sFV+t7oLiGYnzvHCnsiZFJ0qUu9OvN5kAoxig7bWWQzhOx5rFPg62guTva3rG7lJlmQqHZeUe40SwDPj+KGdPBC+lCzk6Jujusy1/Xh5MtiWQljvxyeMivp5Il+nRbd0BnQOh823fnuqMkDlQLUdTTMyFOV6hzF41C4K5yy/sNXDOTFv2RtHfxfymWK5qw/die5aL2nnpHPVGvepuHJpUwHI+YkSQBJyQwsak+Fyae4J3h/IX+wkOuWZ1nwlzhNSj3s3xamS4f5pghjG4TGHM7mc4vI/gAD5h+1JfKac2+z3Y6yhRbEE6MrveSCauoEjs4wj0YU3+8fTo2hp95vjCaaHcbTGnp6Z57xutnprDsDKXzx/UZHFxVYgqGgBn9z2zLS3JRBZml6PoqtL5BP+5apU8ZQDkrlS/BUHi8yfqF7MLZEVypPcfsot2VNA2btNV5VYp9bikyz4ttmAIDjHU0Q0qsjewU5UCl6qu2PBSupIhIraYWObOFd1VhDlv92ZW63 N8nNnvwJ g3PBXQs2tgVX+44IDukEojufzmjBH7qFcH7/GeMlrs9+VrOGMS61bKeLs4SyUYCLaQev7zMYVpAgraRFiFKpxgssi6roxnQgWEYLtx1V69EbmCk1TN3fa/31GXynawY5j2NvyOjTxJO6+AZC0SPBCc+j1U4zh/1ezwC7XYH/H7B7MDoz7VN9+K4wCLjafSEDDcNlfieQ68OKUP69c5oXVrHksJxEKvkg04c0aK69BcFEccZPMwOFXF/w8hf/4h/yvk2bAyIDR5G2DsJwK5gRamCuXUvCuiRvnOd/DYw/J30tqAHiI7XBeCSh+65fb3bwYdYIWHLwBIdAHM75QtnkPjkSwGw== 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 2025-03-31 17:51:34 [-0700], Alexei Starovoitov wrote: > From: Alexei Starovoitov >=20 > Partially revert commit 0aaddfb06882 ("locking/local_lock: Introduce loca= ltry_lock_t"). > Remove localtry_*() helpers, since localtry_lock() name might > be misinterpreted as "try lock". So we back to what you suggested initially. I was more a fan of explicitly naming things but if this is misleading so be it. So Acked-by: Sebastian Andrzej Siewior While at it, could you look at the hunk below and check if it worth it? The struct duplication and hoping that the first part remains the same, is hoping. This still relies that the first part remains the same but=E2=80= =A6 Sebastian diff --git a/include/linux/local_lock_internal.h b/include/linux/local_lock= _internal.h index cc79854206dff..dfdeded54348d 100644 --- a/include/linux/local_lock_internal.h +++ b/include/linux/local_lock_internal.h @@ -17,15 +17,8 @@ typedef struct { =20 /* local_trylock() and local_trylock_irqsave() only work with local_tryloc= k_t */ typedef struct { -#ifdef CONFIG_DEBUG_LOCK_ALLOC - struct lockdep_map dep_map; - struct task_struct *owner; -#endif - /* - * Same layout as local_lock_t with 'acquired' field at the end. - * (local_trylock_t *) will be casted to (local_lock_t *). - */ - int acquired; + local_lock_t llock; + int acquired; } local_trylock_t; =20 #ifdef CONFIG_DEBUG_LOCK_ALLOC @@ -37,6 +30,9 @@ typedef struct { }, \ .owner =3D NULL, =20 +# define LOCAL_TRYLOCK_DEBUG_INIT(lockname) \ + .llock =3D { LOCAL_LOCK_DEBUG_INIT((lockname).llock) }, + static inline void local_lock_acquire(local_lock_t *l) { lock_map_acquire(&l->dep_map); @@ -64,6 +60,7 @@ static inline void local_lock_debug_init(local_lock_t *l) } #else /* CONFIG_DEBUG_LOCK_ALLOC */ # define LOCAL_LOCK_DEBUG_INIT(lockname) +# define LOCAL_TRYLOCK_DEBUG_INIT(lockname) static inline void local_lock_acquire(local_lock_t *l) { } static inline void local_trylock_acquire(local_lock_t *l) { } static inline void local_lock_release(local_lock_t *l) { } @@ -71,6 +68,7 @@ static inline void local_lock_debug_init(local_lock_t *l)= { } #endif /* !CONFIG_DEBUG_LOCK_ALLOC */ =20 #define INIT_LOCAL_LOCK(lockname) { LOCAL_LOCK_DEBUG_INIT(lockname) } +#define INIT_LOCAL_TRYLOCK(lockname) { LOCAL_TRYLOCK_DEBUG_INIT(lockname) } =20 #define __local_lock_init(lock) \ do { \ @@ -198,6 +196,7 @@ typedef spinlock_t local_lock_t; typedef spinlock_t local_trylock_t; =20 #define INIT_LOCAL_LOCK(lockname) __LOCAL_SPIN_LOCK_UNLOCKED((lockname)) +#define INIT_LOCAL_TRYLOCK(lockname) __LOCAL_SPIN_LOCK_UNLOCKED((lockname)) =20 #define __local_lock_init(l) \ do { \ diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 813f5b73e7c8c..c96c1f2b9cf57 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1774,7 +1774,7 @@ struct memcg_stock_pcp { #define FLUSHING_CACHED_CHARGE 0 }; static DEFINE_PER_CPU(struct memcg_stock_pcp, memcg_stock) =3D { - .stock_lock =3D INIT_LOCAL_LOCK(stock_lock), + .stock_lock =3D INIT_LOCAL_TRYLOCK(stock_lock), }; static DEFINE_MUTEX(percpu_charge_mutex); =20