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 61F4EC677C4 for ; Tue, 10 Jun 2025 21:26:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EF6A26B007B; Tue, 10 Jun 2025 17:26:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EA7F06B0088; Tue, 10 Jun 2025 17:26:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DBFA66B0089; Tue, 10 Jun 2025 17:26:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id BDFBF6B007B for ; Tue, 10 Jun 2025 17:26:40 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 3AB4A80FB6 for ; Tue, 10 Jun 2025 21:26:40 +0000 (UTC) X-FDA: 83540775360.07.5979477 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf24.hostedemail.com (Postfix) with ESMTP id 9320E18000D for ; Tue, 10 Jun 2025 21:26:38 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=GAPqIRX6; spf=pass (imf24.hostedemail.com: domain of tj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=tj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749590798; 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=BLGpo5RV7v9ZxIYLh9n9iw1oa1C24UPCsmbXftoA4Gc=; b=0KAaIqeWQwgcYMJ+W7eDPr6RAxZyzWHeCS/eoSv3e1DFjqdS8BwbPVzs8Gg443YIvQWy8/ 0EA/5ZYw7F3mXaLxT/k3PGr0lIVU+ve/d4Vez+VcbjHNvc3J7T331Uarr/Uvomde1qD38U iffxywT1lkPxLL90A7G1mitpkVJUw20= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=GAPqIRX6; spf=pass (imf24.hostedemail.com: domain of tj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=tj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749590798; a=rsa-sha256; cv=none; b=OWbtdZ+Sc9yPxjrt/dPSBCZ/uYWb1twzq5R7dl2fKCu2fSglX+xH4bobbotWPlSxFR+SfL 8/OrUYfsOFdyFE4ElQQbliO3cz65jpyc/jhnPMXVlOO1KWX+uBL1q/Xr0uBFeiR2DtKw2j EJACUyvoxj5o7hHjNNLwGJZrCscvr6E= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id D76815C554B; Tue, 10 Jun 2025 21:24:20 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0EDA4C4CEED; Tue, 10 Jun 2025 21:26:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1749590797; bh=V3sF/svjtmJ8AfC4ZuaHUSixySfbbr0zn+GGwL8oMac=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=GAPqIRX6+Y8GydwV/+d7TU7oitzkde26YFmNB31a4y6RwVNVttHxBF5t+QlMiHK4P aQIYPwS2Fq4pjmIiQ1V2I8a6+p9gVND0W05Z1xJUw8NS2Vubh1qkfCA2mxb7I0tx+u 4Woi0l1kDODHVxwpwtlikCknFyISa2Itb1UjiNi0l72S2lndZ2GAexlvKWQbqbcshz qBYmaABJ8Fvb4xqnizMnNnbqOEYPPveAV08Q+UkSwK1ClzIqkoU5Ik+ebf5/eXnjK3 Ul0mRIT5EXLRPxa6K8R/WjWEpmeQURMyZwjH+v4AgNBKh63yuKzNkVFmsdPfyoUspB hQ3Ucof/sHayw== Date: Tue, 10 Jun 2025 11:26:35 -1000 From: Tejun Heo To: Shakeel Butt Cc: Andrew Morton , Johannes Weiner , Michal Hocko , Roman Gushchin , Muchun Song , Vlastimil Babka , Alexei Starovoitov , Sebastian Andrzej Siewior , Michal =?iso-8859-1?Q?Koutn=FD?= , Harry Yoo , Yosry Ahmed , bpf@vger.kernel.org, linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, Meta kernel team Subject: Re: [PATCH 2/3] cgroup: make css_rstat_updated nmi safe Message-ID: References: <20250609225611.3967338-1-shakeel.butt@linux.dev> <20250609225611.3967338-3-shakeel.butt@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250609225611.3967338-3-shakeel.butt@linux.dev> X-Stat-Signature: yy9c6ezhzhf3fiii1cx8pc8jpnu1jzz5 X-Rspamd-Queue-Id: 9320E18000D X-Rspam-User: X-Rspamd-Server: rspam09 X-HE-Tag: 1749590798-226326 X-HE-Meta: U2FsdGVkX18rwGzdmIxhrMeEwqkX4C15CLkDAUriuFzoP6CKm44j6/Ec2ZghW2zfwvra9A+J9ADBv6Jdw3HPNnreKcT3iLEL05qOFiHynsFu04FKTsBpAh32SHi5Vhr7YPwjEOXgVTpmTkHXkkLjrWA42KebVeKSke5a15HijTkjX1i6JxLB3AmJHNAChuclmmVO2dxfDkmwOrMPruSaWpvaNJkmEUKaDOZbyFlHaR6OF3Kd0sQsx+bARZT0ccqnUoW5OjG8qTE1Dw6F8y9OeiskghYl2b5sbLurQbQxgD4g9+NbIS60deJQE+lOTJIGEzMLM5HBmUSCAFv1k5I4JuHdJqjCIJsOablj17CYj1XQXgUvkllSPa+KVLdqvHUHCmNcXNdIyOrYFj3LEdWBnz8ULC3b26B0YzknPrxp+pg1EmhyMEEClLJxkB6RqjkhgfE78H/c+UpNoV8FyO/3oDBrWZSLoTCY1WfaWRqUHMWMa6xGFbCezx9Wf4/geN/dpDtZGsu7c1GZAT8dmQ3eOm/Le1kOV/eP1eBfSgZVVrLfH9PXs5q48dRjBiiVLY/a50NCJ9TMTaRZ2OfpxpBVqUcmbw9TtAewa+5cY1ovk+3VaxNdlJOwziSwy8M4F8J3UM/KN0CsXs53orYunZbnuEwGC0iwPa2sfrVGJobXsjNXayTdzTKTZq3wLltEWqyzMo7MBZY2PwP7DYCXZF6ylZhQ+24bhUfp21yRfZfBHiphUKuOnXTwN9dSZHsAUf1WUevdbWEvM7LBVYXzhPsgbOI72lfbMtpTC7S3TD0Mtfvfu8OGIJ6K9GmtvxzHbJ8GpLhjraEHhvfGmGk5Gg+n7AWLkmB9IGNUPaXBAjOGWVDYOkKTz4xmtbLS2lEghLQea2ZKy0/NV2b59XJapx/N95/zZWPhGfZfBwFrryN38fpwkXf983lJMOazuHdRC9EK2zkUqMhGh/bLbmfBvja l8nLRIiF p0ursPLdqOIFpZ4iWZg+8fhtJibOYeh7G8NmOoaq+9HdqFHRvJPsYC8az0v0S37qpsKLDHEM4cmadmc8CxdSG82yuzTkagcRA4OmGIKeZzJgFZ1C2fx+xI7DatmbhWL20mpIVap0Po5A6U2p8UodQZ93gIjj3CYASrIwhyi8YuV9PS85wybvZycoQvG4zMFcAecECR75K82FlXM3sv4wYbkRUQ2EU3zyXIqhhzM4IXBsdPro6TVDMo6OILRZt89V7wGbFtPBf9VpPG+U= 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: Hello, On Mon, Jun 09, 2025 at 03:56:10PM -0700, Shakeel Butt wrote: ... > + self = &rstatc->lnode; > + if (!try_cmpxchg(&(rstatc->lnode.next), &self, NULL)) > return; > > + llist_add(&rstatc->lnode, lhead); I may be missing something but when you say multiple inserters, you mean the function being re-entered from stacked contexts - ie. process context, BH, irq, nmi? If so, would it make sense to make the nmi and non-nmi paths use separate lnode? In non-nmi path, we can just disable irq and test whether lnode is empty and add it. nmi path can just test whether its lnode is empty and add it. I suppose nmi's don't nest, right? If they do, we can do try_cmpxchg() there I suppose. While the actual addition to the list would be relatively low frequency, css_rstat_updated() itself can be called pretty frequently. Before, the hot path was early exit after data_race(css_rstat_cpu(css, cpu)->updated_next). After, the hot path is now !try_cmpxchg() which doesn't seem great. Thanks. -- tejun