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 128DCC61CE7 for ; Wed, 11 Jun 2025 05:23:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4B7A66B008A; Wed, 11 Jun 2025 01:23:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 48F2E6B008C; Wed, 11 Jun 2025 01:23:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3A4A76B0092; Wed, 11 Jun 2025 01:23:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 1A7B66B008A for ; Wed, 11 Jun 2025 01:23:58 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id B2945141C56 for ; Wed, 11 Jun 2025 05:23:57 +0000 (UTC) X-FDA: 83541978114.03.9BC368E Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) by imf08.hostedemail.com (Postfix) with ESMTP id D6BAF16000E for ; Wed, 11 Jun 2025 05:23:55 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=NtNtqDLw; spf=pass (imf08.hostedemail.com: domain of inwardvessel@gmail.com designates 209.85.214.170 as permitted sender) smtp.mailfrom=inwardvessel@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=1749619435; 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=2130SYJpBwgCGHXYYTpNm5sjUlFw+z+qbv0CH8rq1ec=; b=xe2Vnn/FCDJjlnw9MkdMIOqGWygQ4EJMHjqIiAtxUzGry+pdZef6/20c5sVZbZz2rPxVR2 TNw+uc04AgmXO/5eW4MBYEc7UkNvjcS/nLHAHaukkgnZEHmmCa25wpShVCi3cieV8Uo3Ed 6zVRZgAprAVH0U9KWY9yNXDh6WPczjk= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=NtNtqDLw; spf=pass (imf08.hostedemail.com: domain of inwardvessel@gmail.com designates 209.85.214.170 as permitted sender) smtp.mailfrom=inwardvessel@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749619435; a=rsa-sha256; cv=none; b=LH+W6m8X5hKj82ums3QoKs2fL4GW/oIekWFL6jG1yZT8gANkVwY0FY4I5/Kfe1IWEH0T5h WzVxg22J6At7psw+1CQjCW327q8+Bk7sW1+8Ae+zgsTmKtUHReE+Rb62sd2p3zxPlit9LI TaWawHER/f1wh98bl5zHkT35OVa+iFE= Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-235ea292956so59803055ad.1 for ; Tue, 10 Jun 2025 22:23:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749619435; x=1750224235; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=2130SYJpBwgCGHXYYTpNm5sjUlFw+z+qbv0CH8rq1ec=; b=NtNtqDLwrfnFDqJIt6NtEwqyYCZlUyYeFosPyhZ/PhOLBFDtHxmBikjZREpsu6SXbW Pt7clsQKjot/8Oq/4YLDwec9FFv9O0EUnYYOkomx6/J4XQC2YowrYajlwZatPoy//1Fh TJ0DNMzQpifpjASzN7C98mF5eUTz0aIBbHpvM4WIfCh8mVQPEqOlha1pX7KlDEn7VVeK hphyfZKQMNWurG77HRlMt/YVLKYHsVwHS+1qzxvQ0d9uFfmq47mL2jXz8xx4jPQUmB8N VI1gwxh+HL2/p4nXvs+RE6Ecu4y06q/3WbgN57VQRv0JaziMAJDOuM4WeXZjk5ZH5hV7 eo3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749619435; x=1750224235; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=2130SYJpBwgCGHXYYTpNm5sjUlFw+z+qbv0CH8rq1ec=; b=p3NLEjTj9Nyv7w0gO3LZssqfQ1Xz5cKsFPxNvl8d4KFYr3w8xcwg/zOcO/vvtoam2Y 6ZRNAkQ7M7KszU4o5MQ0P2zBT1FQj1PNI2wrrN7osdcdTffs70FNqC21xODoLIBupuxB jFRfoAjwiC3xT3Er+U6MuBsdWWEKyMcleVXGAeBx1FyYvKlX7wDLEm9kA8Vt4PgbLqSG 9RjrgzU6bvQbvw13heDE6N8f1RbLxPcAExbfdRrSF3MlYqZQPc6OB+tPRBwXEEtqBofR NXaCJaRpPSZqiL2zG2oNEDIN/Kr1c2wyLN0HIP70V8b3QrvO2InjuB1j80icWADI4U03 DclQ== X-Forwarded-Encrypted: i=1; AJvYcCWyAsOToKd6Pfeq/sWWLtQF/U7rHp72oZX+4qsmInrRXSj9Vz86PftT82+ZbI6SDqDIAgQjo6Hifw==@kvack.org X-Gm-Message-State: AOJu0Yy5rJ5nfG9Xy791ZGqDqmyDn8pt6T8F9gcSWt3gPdxjf3MMGu8a zQbv4VawE6zm8wbA7drwYa7eofon1gj5UofhyUfr3+GTTBebAo4x0dHc X-Gm-Gg: ASbGnctD2Uk37dmwxvhXxaErENSuXjzqb+l6KuKQ1mYQbscDLZn2AspS+ijQkRlgl91 4VIWvMzfPv078dUT/gg1ngxytIwgaGiASsZEN6+Y6oIauU0HEu5l2N8ocCLZ270AWkbav4bpPaj e8AQNoMnYtRRdmjSTX2m6v3asjgJyEg8Ho7h1ph0eOsFmRfXKJjNhX4B3m/BqdGTXrLzf8saQBv u641sE+CHAx2SeZzLEUHzmf7wggsaLb0cNS0d3TOTz62Us5K5JWekH5qHnt0KjLIbZXJzi2TBiC QGve54Avg+j7GWeU3CXjsP2zKNKd4SsIrk2ynxnra7XPqIFOUJ6WuiS5YD9Ys+GEonj4LY31MNH UbdQzsxSQLeB2fG/d7pJs1Oj+Kf8F/Er45n0= X-Google-Smtp-Source: AGHT+IEYoGt2DW8dmU8G7W8VbLXAXyReelYumM1CpQ6rdvCFn1U5bH0sa6DJ8R25zLoOr18TTOa5+g== X-Received: by 2002:a17:902:cf0f:b0:234:e0c3:8406 with SMTP id d9443c01a7336-23641a8ac31mr24808175ad.1.1749619434535; Tue, 10 Jun 2025 22:23:54 -0700 (PDT) Received: from [192.168.4.196] (c-76-103-195-132.hsd1.ca.comcast.net. [76.103.195.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23603c6c325sm78316115ad.173.2025.06.10.22.23.52 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 10 Jun 2025 22:23:53 -0700 (PDT) Message-ID: <9cf00007-f068-4ced-8977-f39a792eef6a@gmail.com> Date: Tue, 10 Jun 2025 22:23:51 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/3] cgroup: make css_rstat_updated nmi safe To: Shakeel Butt Cc: Johannes Weiner , Andrew Morton , Tejun Heo , Michal Hocko , Roman Gushchin , Muchun Song , Vlastimil Babka , Alexei Starovoitov , Sebastian Andrzej Siewior , =?UTF-8?Q?Michal_Koutn=C3=BD?= , Harry Yoo , Yosry Ahmed , bpf@vger.kernel.org, linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, Meta kernel team References: <20250609225611.3967338-1-shakeel.butt@linux.dev> <20250609225611.3967338-3-shakeel.butt@linux.dev> Content-Language: en-US From: JP Kobryn In-Reply-To: <20250609225611.3967338-3-shakeel.butt@linux.dev> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: D6BAF16000E X-Rspamd-Server: rspam07 X-Stat-Signature: cg1f6yomkoyujaftoyfgd8rcbjyy6c3a X-Rspam-User: X-HE-Tag: 1749619435-61813 X-HE-Meta: U2FsdGVkX18r2nTebgmRheRgBo0QmOksuHwc+OX8W04EFCrEEp3bVrLmlfxx+x3iqVIYpV+3pbSukcL0pyX0SBuzlYRnaeLxOKHt84Zavs37fvQt1D2WhrDV98CFuaWPEKm04npfdWVvQTgDafcGfwmbKD6YgYj8BKScJSfnoM5r6q7nlMQC7l/Ilz4EyoasNq+leYfGkD8yWoTnl/jErV8dly6M+i1AwXHNMEAcywF906i1QwLNAfmiyp/quiIzqB95qAMYMhJE6+kP8DB2n4t8LT19RGD3zNhnVU3SeEx4TSc4AFdb4CUxBKt0yOXG6QgjFnNdbprgRJOcgbHri2g6MyPwQmL38c2+l4VrddnssPUUAYGom5go8Mov1jlWQfJZQuxpx1EqTnXGWW9pKp6aqAfd/95Q1pEuO4KG3+DVZs7cM71dprgo5XKbzVW4X2ta90gu5sRHubesI960gGSrMLNsXowD/2VPY8ZwN9Mv9/aGIin1mOlP6NITigzoeeC3Uv7e/hIDI1ZU2gui0ASx1lrnANOB9HlV9jk76Y18J5GJLPLM/xt8yNa8a5xu/nEbiHLJUjSOPFzV6skgBSe/HVnCCp4j01Eu55aYzk4nCut4l3i07iihuFtvTW1vlcAXRfB4YXR0ENaSIrXHwj6JP7pMp317H1vWkVJG5P1YiHPWXhoj6RJS6QAsMMxV1y82yFJC+or7aEUPoHFtS7n67SpjXy86PXhShhVrcyCUgph9hL+GGOigIh0s0IbDF7amp+Ftb0UNvCsHTPf8VxX2s+TS+lYSg7A8Y9BRYQXPtePnSrEuLd5kBQY9O6KJcKjKp8MispF6m24LZxKvfYi6Rb2F8qPNStf+x4Hd6+fuuZhXz0s9Ahf2GRRHYcnKYdP76V4DDGV5rzsJtQlWf+c0+yCMABqzE031WnkDSCQWVWAKWaoNMybcrFbeeOgHfySfO3nPD/57nTgPtSR c560UD3V DJVAKif3I/s6Rrj/+p2JX2Uj4+OYtMA9CrBHSlzWlG9gYd/xkZFVP7T7FyhtKsN9GDCJn 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 6/9/25 3:56 PM, Shakeel Butt wrote: [..] > diff --git a/kernel/cgroup/rstat.c b/kernel/cgroup/rstat.c > index a5608ae2be27..4fabd7973067 100644 > --- a/kernel/cgroup/rstat.c > +++ b/kernel/cgroup/rstat.c > @@ -138,13 +138,15 @@ void _css_rstat_cpu_unlock(struct cgroup_subsys_state *css, int cpu, > * @css: target cgroup subsystem state > * @cpu: cpu on which rstat_cpu was updated > * > - * @css's rstat_cpu on @cpu was updated. Put it on the parent's matching > - * rstat_cpu->updated_children list. See the comment on top of > - * css_rstat_cpu definition for details. > + * Atomically inserts the css in the ss's llist for the given cpu. This is nmi > + * safe. The ss's llist will be processed at the flush time to create the update > + * tree. > */ > __bpf_kfunc void css_rstat_updated(struct cgroup_subsys_state *css, int cpu) > { > - unsigned long flags; > + struct llist_head *lhead = ss_lhead_cpu(css->ss, cpu); > + struct css_rstat_cpu *rstatc = css_rstat_cpu(css, cpu); > + struct llist_node *self; > > /* > - flags = _css_rstat_cpu_lock(css, cpu, true); > + llist_add(&rstatc->lnode, lhead); > +} [..] > + > +static void css_process_update_tree(struct cgroup_subsys *ss, int cpu) > +{ > + struct llist_head *lhead = ss_lhead_cpu(ss, cpu); > + struct llist_node *lnode; > + > + while ((lnode = llist_del_first_init(lhead))) { > + struct css_rstat_cpu *rstatc; > > - _css_rstat_cpu_unlock(css, cpu, flags, true); > + rstatc = container_of(lnode, struct css_rstat_cpu, lnode); > + __css_process_update_tree(rstatc->owner, cpu); > + } > } > > /** > @@ -300,6 +331,8 @@ static struct cgroup_subsys_state *css_rstat_updated_list( > > flags = _css_rstat_cpu_lock(root, cpu, false); The subsystem per-cpu locks were used to synchronize updater and flusher on a given cpu. Since you no longer use them on the updater side, it seems these locks can be removed altogether.