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 492FDC369AB for ; Mon, 21 Apr 2025 18:19:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9A1086B0005; Mon, 21 Apr 2025 14:19:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 950926B0007; Mon, 21 Apr 2025 14:19:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 818A86B0008; Mon, 21 Apr 2025 14:19:03 -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 64C526B0005 for ; Mon, 21 Apr 2025 14:19:03 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 9428DC0B31 for ; Mon, 21 Apr 2025 18:19:03 +0000 (UTC) X-FDA: 83358862566.01.E1BCB96 Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) by imf21.hostedemail.com (Postfix) with ESMTP id B63E81C000D for ; Mon, 21 Apr 2025 18:19:01 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=iko7cAki; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf21.hostedemail.com: domain of inwardvessel@gmail.com designates 209.85.210.171 as permitted sender) smtp.mailfrom=inwardvessel@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745259541; 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=4NnzSj3xXsMU6P72SjjLVYyHOckoaZh/vTDDVaG/Zv4=; b=JegTMeo4Qfw4Go4MZC84oDLt1CbaF44UDCghU9rqHpUHxFJFpq/ayeSectY5V8aIusi6Cb 8Zwe4GEO78UaOZohVO5t55gso/1EWZsIVheIevACAJe+HsDHKP8qhXYdIeW59GR2pxifk7 aK3lvlkA6Q549h2k0v80xvppIXS34SE= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=iko7cAki; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf21.hostedemail.com: domain of inwardvessel@gmail.com designates 209.85.210.171 as permitted sender) smtp.mailfrom=inwardvessel@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745259541; a=rsa-sha256; cv=none; b=GoDxLLBfjXVRzX9qvZoMcymeUIGCGgfergRLfMWj3I6gYkh3B+S4vnPWk4cCEGJ0mEqyo/ CGpxC8bWBdw+utLKwKzZuJHXnv59pbICgf3LCfO7JSynONAs9fYIaELRV0aaU8OPShiu2N OxjPN+OVE/E1nrkMz/LnVpts+mc2ORQ= Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-739b3fe7ce8so3479559b3a.0 for ; Mon, 21 Apr 2025 11:19:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745259540; x=1745864340; darn=kvack.org; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=4NnzSj3xXsMU6P72SjjLVYyHOckoaZh/vTDDVaG/Zv4=; b=iko7cAkiOKQQRQ5fTXDUyTHUxfKwjlrUFNwUE6YdXlcyn8MvUe24hDnFhUlDUTKghI OLobBw/U22FDBQPYPBhRe7JXnNOQU6YIJhfGYnttzmP1CLFggPhAmcDP7leUk8Zln+2n 3loc/q06CnW7UN339iO+phMToqPQk3F2vYY57bXYhy70tgQ82QChA1x9RJ7hSF3ZYN0Q PCwN33XWK5MzKXvTIOuyw4p/puUSuxfNCXrZmQrm136tY5a295eyscV0sXmllWEyJTFv 5/3moKO423TpGDkTauRzYJKclqb+6BZCiZ+t42wC4gvc+B/nAWDP50krX2atgh075kam kkMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745259540; x=1745864340; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=4NnzSj3xXsMU6P72SjjLVYyHOckoaZh/vTDDVaG/Zv4=; b=DXjh4BTn/FQDuwzK6b20RWXzFrxYii7K0JfNKIG6WXpJM/tAKRCy+38MXLvzDhWK3r BL7yqvjMGIkQzHgNv86k1A+FEiUKJmIoZi+rHwf7OcYU6JLobFUMQJgY1u65ohmwdjpT ILaGm+1ktJV9LGu4Y+sejtbgKHAamtvlbc8M6IH/enqiZR3xghACW6vt2DK9jcdsrN35 XUcMpkTDuJ/0icUg0j0j7xV74qcVM/q3P6zdQHHkgOwaZGy51RetFWgCBXOww0Fmb9X7 0wAdwzeWyQ9GfFNAkNFQ8HXmI5STQvPE7BfEYA6PwokqEQxXYLlDQxamarp69TMXrkcZ RPHw== X-Gm-Message-State: AOJu0YyBW8+oa/1DrHpmN7AmfV9e4gqvxTEaYpokdXq/z2t+I5hPhP6Y As+JHEk2UNDfbOtKI4WYcjJZbRTw5kPNSiiKdJwaAQ91boYYAjOs X-Gm-Gg: ASbGnctK911PxRmpa34cCMH2jJ94nVzWAQxGW4Gps6SpHCp4rNaDTKtK/s+wsB+TzuJ Rp+zN1YoDgl7KBfk8sZ3iSB7qorbhIiRrxkOFSb/5EZAZSYVaoxM/DqghtjMmnPhZRJo81OXtEB fBB7xAkX1ZKWdhWniBRk1glcSaQIHFA4gJ5SqOeqqqtg535ecBCSLfgD+MfxdfkzuJ21nHK2CZY K45o9FUr3aSiAV4yPk7b/FsU8WxfG2Yte3n0LYMe9RegHUh/JcNz0Uc+V5EKeiG5Scz/1dENLj6 v20VatGwfwwED49MUJsajLsjdLLXBjIB4zHptAFRmQQyXzLgIfU+FoK3S9mGU8m3jnfij3GNNQ= = X-Google-Smtp-Source: AGHT+IFXLQns15fh7pfXNc5ezyl1dqkgGArBZMs9ZhZAxbmZXFP14YURwrWhnlqgEDq+qrivE33rjw== X-Received: by 2002:a17:90b:5410:b0:2fc:a3b7:108e with SMTP id 98e67ed59e1d1-3087bb3e865mr19134798a91.4.1745259540410; Mon, 21 Apr 2025 11:19:00 -0700 (PDT) Received: from ?IPV6:2a03:83e0:1151:15:3aff:e3c0:27f0:39c9? ([2620:10d:c090:500::6:17e0]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3087df05132sm6938105a91.12.2025.04.21.11.18.59 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 21 Apr 2025 11:18:59 -0700 (PDT) Message-ID: <8bc5579f-41b2-48b7-bf34-b970d98f0345@gmail.com> Date: Mon, 21 Apr 2025 11:18:58 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v4 4/5] cgroup: use separate rstat trees for each subsystem From: JP Kobryn To: tj@kernel.org, shakeel.butt@linux.dev, yosryahmed@google.com, mkoutny@suse.com, hannes@cmpxchg.org, akpm@linux-foundation.org Cc: linux-mm@kvack.org, cgroups@vger.kernel.org, kernel-team@meta.com References: <20250404011050.121777-1-inwardvessel@gmail.com> <20250404011050.121777-5-inwardvessel@gmail.com> Content-Language: en-US In-Reply-To: <20250404011050.121777-5-inwardvessel@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Stat-Signature: hweaftd6fybhi6ys5mjg4rgnafz6yfn5 X-Rspamd-Queue-Id: B63E81C000D X-Rspam-User: X-Rspamd-Server: rspam05 X-HE-Tag: 1745259541-317210 X-HE-Meta: U2FsdGVkX1+V2DsALUCK5utZ9kldv2iUNDrL68TLYsIKWaz5GNzirJKolwqdMQSRJupArtw6l0MzRyA6msZXIvBYzjmr4QBsbFoHztvtz1KZiUyb5ski8VO1UzFAKFg6BypwjkiuS8zIeg3NE2ihWcAQ9S18vBx40ISQA6jGOaXRLDEs3rl9hS69NxaaFesQtFhfQc2YRwpPp9DBoXr2dSxrNZwL8CFB8s0VyasfoWeOIR9U7L5qeUeG6U4RGk2PNctRcipfFbGJakmPpGhc29QOFMHvPV1oa/l50tiqH/2USBWw+NI69z9/gkTI78Y78kekzYi7PdOn+LZydq89L0FgNMHMbO0DLCX053DHjX9NuNCTt1AFzhBGe3/BLukYK9hg1SGXDPEe96N8iCFfjYb88SCxtvSOMBGU6IhDn2XhFJlez0b7MfGXSHHUVJmB4bE5S9i+AZZjg90VDRp48Dd9SjOv5+o0WYAzTG7Z/r8XHTZF/SYOXef/S0Kf9HhIJBnfTnvg1DjYCr4OU7c09qEM2Lr2dWgn83qGvijqtVVNbgl0/nrlLFGkWOLKfMrkPjUGL4OkX0dlW8uDZx6UDyz45iKYGUg4TQXo8shmee/g81vrBujdrN6Ny3qXr+hcVw5Udepy4pN57XgkxaYyvtIliSG9xtIsogEaiZVw7wZewq3dRSTAjnUrxCb5K5s+XTLXI15xw9qnTnSccx8IO9brmgZWmyxlMeBicll4KDp4EPpOp5bDZRaL28cINue8NAo0lNorXV5YG5E/J8pfUc97xvkIt0PnSJlgsYu1ZkETEecV2jjO3cK4iT9+3RfxsfFhsEUyMQaPP72o3z4be+DQpELH/eJIsq1rXgoNmPUfrjgcV98x3iuca5ifwapVQDX8w0UeoxyQ03L1qndQ3G63tqawnvUetrTq9DW6IerxUOPO2MFAH0l3Q4Xr3WNpFHreBwdY5WIL2yposVN w339OUe+ ASIGNfHmtkRSDq1mg+KSZHYS3gfZlCr1Ve+BrUjyV389/GGIA4txS0kn55R2DotT3+a+RcY82j36xDB0/3qYNbVxe780X8Ru+YmHFo6Z1lf6mPUMmulO505o2aly79Cz4uMbDcvOnR8xnDv8QJ68m1Fh9pu2SLqLVoD/gGjalPSpj38zi16TJGYeo+sOpFL11BECJF3rjD53tCTGzVWbYwSVW6dCSBeifkjfAFbndwpJQwfHs39NMsQ4W1aHyQcQyi/pDjBgpFNilVqMqLsJr5oi6O/pvgIt9fNE5fqPwZ80AjIB5IVf3v2Ah8zJQCdHfRBiaG7Nnk8oGzBrp7Vg9+0jwe3qaqwREYKyXnFqSdA7zKiuX+EY5EPuvWZZQdwTXaTmU6oZBl5Q7ZMuzK/G0Sbc8y1X6h3qQBnpoZcs9H4ar/DtGOm1CqDHw7H3zGVzVSh+n 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 4/3/25 6:10 PM, JP Kobryn wrote: > __bpf_kfunc void css_rstat_flush(struct cgroup_subsys_state *css) > { > - struct cgroup *cgrp = css->cgroup; > int cpu; > > might_sleep(); > for_each_possible_cpu(cpu) { > - struct cgroup *pos; > + struct cgroup_subsys_state *pos; > > /* Reacquire for each CPU to avoid disabling IRQs too long */ > __css_rstat_lock(css, cpu); > - pos = cgroup_rstat_updated_list(cgrp, cpu); > + pos = css_rstat_updated_list(css, cpu); > for (; pos; pos = pos->rstat_flush_next) { > - struct cgroup_subsys_state *css; > - > - cgroup_base_stat_flush(pos, cpu); > - bpf_rstat_flush(pos, cgroup_parent(pos), cpu); > - > - rcu_read_lock(); > - list_for_each_entry_rcu(css, &pos->rstat_css_list, > - rstat_css_node) > + if (css_is_cgroup(pos)) { > + cgroup_base_stat_flush(pos->cgroup, cpu); > + bpf_rstat_flush(pos->cgroup, > + cgroup_parent(pos->cgroup), cpu); > + } else if (pos->ss->css_rstat_flush) > css->ss->css_rstat_flush(css, cpu); This needs to change from css to pos. Note this was not an issue up through v3. The flushing functions changed upstream between v3 and v4 so this was possibly missed during the rebase. > - rcu_read_unlock(); > } > __css_rstat_unlock(css, cpu); > if (!cond_resched())