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 CF9D2C3ABDA for ; Thu, 15 May 2025 00:20:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 644F36B00EB; Wed, 14 May 2025 20:19:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5EC706B00EC; Wed, 14 May 2025 20:19:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3A5316B00EE; Wed, 14 May 2025 20:19:57 -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 1517A6B00EB for ; Wed, 14 May 2025 20:19:57 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id D2C79E2AE8 for ; Thu, 15 May 2025 00:19:57 +0000 (UTC) X-FDA: 83443234434.06.92AAAA8 Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) by imf16.hostedemail.com (Postfix) with ESMTP id 08EAE180007 for ; Thu, 15 May 2025 00:19:55 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="eezz/LC/"; spf=pass (imf16.hostedemail.com: domain of inwardvessel@gmail.com designates 209.85.215.179 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=1747268396; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=QsXeddh27qUtiPyjuWiU2GcX+XXeR+Y15TR04mKI6bw=; b=vnQQaINuGqPDSXKHgjpzTZ7hCKjVlIEPeg6terDoANk5rqbyB1Gc6E1+1JJdoxRU+HwQ7I xrtIb/kJQkVxkyMyamXIFnPHkDhfS8Hy8kpxt0pnpdndni/V65sRRell4ZiVvD8pPQDcwW sBTI5rzOuFYIQ7qB8PVRHb2uy0jtgvw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747268396; a=rsa-sha256; cv=none; b=f6/jJURaOyonWoMofKXqzhTSYJH757HSQGEN9tyPacp4HkV+BhL8ymmzfOG0JFoPzJB751 hYm9kgBvuROHgI1q+HmfCiURzc62ZX9EDpX6yagfLJEz0fhcGahz1QIINn0+1jeehaB6DC 5mnwPl42EkAlAWy2Ah+uNzhBzCZJOXc= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="eezz/LC/"; spf=pass (imf16.hostedemail.com: domain of inwardvessel@gmail.com designates 209.85.215.179 as permitted sender) smtp.mailfrom=inwardvessel@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pg1-f179.google.com with SMTP id 41be03b00d2f7-b1ffeda9363so272332a12.1 for ; Wed, 14 May 2025 17:19:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747268395; x=1747873195; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QsXeddh27qUtiPyjuWiU2GcX+XXeR+Y15TR04mKI6bw=; b=eezz/LC/yMyXT6Toa2XM9maB8X3WXqQ7UfZ4KRZih1mx9Qvv0nHhk40l3x8wcc6N/P Yegz6zAIxUvL9f9vq7Tj6DlMNhWoL1jnopDiMUn1Am1xzcGY1T9/bnH06NTIPqxvExch CCvwUNc7IquoS8Fe+r8eMadzGoU0ZETarBm+fYy8EUVphx5CMKityOoRe+TjTQ1yXoUK 4nDm7/wWTyHcO6ubV67KjyecMj2TWdIDLAef6U6ax4qjBJY9G6I1gBlW8ZvIZnOAJs6l WHDRfMUmMJf7bvy06HMyC8duDKKTRHB6XS5YWnibUVssD7O2Ew+Clp5XYhDWxId/aoRa tbiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747268395; x=1747873195; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QsXeddh27qUtiPyjuWiU2GcX+XXeR+Y15TR04mKI6bw=; b=Di/+Y+k4xpMH/NF0fzxUFsBB2ZT7iIDNI8j5fpweTpfXbQKeikHMnVwzFJdU2otHr8 PxHrbg+dQTjIPmU36PeTG9A4Lwd4sZKogpDbsFcbuaj8F3bpsE3jq9k9ty+GGKRis8bt w1QtjxSp2kmric5z7PfHubIDoOtJ4VxJ/n+4owStsKq/ZiPG6Wi+BXH1dYeSlHvxFNWp mPMaRRO2pFvGtZZW47J/hollnyD/Mk6CEFMBEGXVnVSmjkl0bkH0uPUhEpRKwlT6wpwj KzdlXDqXfbMFRs9OC93gxJd8mrMzsMhlqdiaxFEzDcdajUH+BjV8rIrNfm0H42mKeWCg 8kfg== X-Gm-Message-State: AOJu0YwnZOxfZFOTjVlQcmvjYcENDrunRi4dVf0Yh0DpXJcEG75UIIPM L5sg0TQgiJz7WmcMct9stdQnuI61qK9E6+VxmCQNzlXvTcl/fEB7 X-Gm-Gg: ASbGncs8ANCif9J+wzOg4eppSMe/qaVE+XZtkF2rHqa5+aLZfexDq4vS++bHOfQQ0cL XD/NUM6cGM8Rsq08MEgAOHc8SNBY3p2jFMTHySa2UAZwEhG55gxUskjcooNPI4eYjbSMK8ng/eO r21+JMj6xEkZLuTynqk3M8WqhyGs3FabVHFWGhOU8qx+6KOAni3Wt/pU7vNWPOWGs886puCJCNi q9YnGMqGKIeLJrGxcu2l9IyNDogBt60SjN9LWcuRUTMzAhZXMmvDL9cUJbln8WV9N1OWLBW4wDc PQNyIQcLQBLQgJfPyudNiaQ7abYMFBmn+TdY5x67ac1HdjbkUDFO5rl8Yos+RGzpp3sG0x9djbE jTIFhnmCcaSfeMPKb1M2MDqPSAz85LO53v2q+Hgw= X-Google-Smtp-Source: AGHT+IHMcc8S2VPw0vzeqOlM9yadW+kn0gwzI0AfHi3/d+ZF1Q3laR0g2ViY2qe7tqs4zQRqTNyn8A== X-Received: by 2002:a17:902:da8b:b0:224:2717:7993 with SMTP id d9443c01a7336-231981c916emr74952665ad.45.1747268394873; Wed, 14 May 2025 17:19:54 -0700 (PDT) Received: from jpkobryn-fedora-PF5CFKNC.lan (c-67-188-127-15.hsd1.ca.comcast.net. [67.188.127.15]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22fc754785bsm105939545ad.20.2025.05.14.17.19.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 May 2025 17:19:54 -0700 (PDT) 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 Subject: [PATCH v6 5/6] cgroup: helper for checking rstat participation of css Date: Wed, 14 May 2025 17:19:36 -0700 Message-ID: <20250515001937.219505-6-inwardvessel@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250515001937.219505-1-inwardvessel@gmail.com> References: <20250515001937.219505-1-inwardvessel@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: crppfpf7zey788r14nyuf141o7hrhtoj X-Rspamd-Queue-Id: 08EAE180007 X-Rspam-User: X-Rspamd-Server: rspam02 X-HE-Tag: 1747268395-563030 X-HE-Meta: U2FsdGVkX1+iRDasuPq7RN7RBYqPzxi6qkVBisu5GBJh2wFqoh4zoW5RlGTMTpJ7N9xHXyWPEI2XlsdLZjToxAXu+fA3o65gorwYeJCGSOu06RCv88yNWopKcEqAK/qIfuPBPxxMerPOtG5ZkPP01jyqnnpi08DqEgTHmMRww0FjyWrHsgWd8J45cFo6qlIJN9Hxes6z0FtfZQ7Lq0ppxLVGEURnvbfT6Ex1aLM5bPxUJCAp8jf+5w+mOZ4LCXgzCCmAmIPypw/ojTZc2LJ2WOYUOKfbojQpLIR+F0bpYXs9wn3M6BlJlXJ2QmN98NK4tRuZ+93r0VBharYVoXnOsjYyWiVLzj9FwCidopgsX2mMDZPNE/5pkL4sSl9ohNcJ7c6fdQcZHAYOGPGqrT2Gm8MWnBNqRmiQnmLk5McLa+9ESjUQRYBKOJO3Mdk8g2Xy/zWITSm5BTavcBK+vh86LykpH0DSkPhfU2CUrlvLrRG6GkaV5vOOX0Ll8jnkUmvFEj/j7UrH1DwwJlQGmWyCZ5A8jxV0lg7Hf97Rwagy/xMWRX6NooWH1qR1MmGYp6uYcf7FrpXSjycORzbuWgRFAUR67WTGE/ddIYU1Bgo8YzQqYMzamsBR/7LyTviAA0AVxzPz5cpC8+0Vgj8a+PT/W2DRho0WzDtDqq5bu7DlppkjBqzr69qagGxJGG4h7ql98ry/FfwXuJm85UftuwrlxFUU7l7f6obduQkFe4mbkYPzz/ziOkMxsZQaMWgIrEEBpBlHckZTLvBIQGREGv3WycU881NRVqTFJQ8o9kNTo9INja9VyyVgFSBtkFHwkYn4jIwe1e+cq/tic/X2CgDvMhq0EtfzviiysiPybRl/d4xVwr5g0kV0zg9CMNKUta4k7lVTU/Ig56ncZ6VVlPC5SLwZ8CwZ8GYPSqr917gGHPNSNY1arGlVWmm/mpEinA5RVMuZCNeP61xybBzhec/ 307v/WY3 EjZWO+eBbvJR6QorbB44TQraaWqOPcbGLDi9P0FFpVmbo9ZPdov721JXLXfQf3xj8qtFbrcGRl+Dhuc11ORmjRYcOF5LVPuGaSn6xwsThOArmR/snfEMI7WdMwR613obGRwRHIq7y0BI2qdz3vNmyTj0ho4cjLx2jo7fxRuIkOGa5XFuXWRhTQuc8KEnUUHhkQ5lE/D+xhAMZiaVC3Wd936mWBJwvLFLTgK4KJymbJYa7uMx97Ixb3TcsbUzIo1hT7rJUuOdNiFOa0kO/s33ie3IVDqyIbAr+8kWMwLbi0wYiJZPx07VflukBPhNXyD0BPfsiZcKXU9J1QSXhOqQ2W3A4hz5K7bKHdh/Q4d8XCWQ1awVQXAW5wR6anQ== 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: There are a few places where a conditional check is performed to validate a given css on its rstat participation. This new helper tries to make the code more readable where this check is performed. Signed-off-by: JP Kobryn --- kernel/cgroup/rstat.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/kernel/cgroup/rstat.c b/kernel/cgroup/rstat.c index 0bb609e73bde..7dd396ae3c68 100644 --- a/kernel/cgroup/rstat.c +++ b/kernel/cgroup/rstat.c @@ -14,6 +14,17 @@ static DEFINE_PER_CPU(raw_spinlock_t, rstat_base_cpu_lock); static void cgroup_base_stat_flush(struct cgroup *cgrp, int cpu); +/* + * Determines whether a given css can participate in rstat. + * css's that are cgroup::self use rstat for base stats. + * Other css's associated with a subsystem use rstat only when + * they define the ss->css_rstat_flush callback. + */ +static inline bool css_uses_rstat(struct cgroup_subsys_state *css) +{ + return css_is_self(css) || css->ss->css_rstat_flush != NULL; +} + static struct css_rstat_cpu *css_rstat_cpu( struct cgroup_subsys_state *css, int cpu) { @@ -119,7 +130,7 @@ __bpf_kfunc void css_rstat_updated(struct cgroup_subsys_state *css, int cpu) * Since bpf programs can call this function, prevent access to * uninitialized rstat pointers. */ - if (!css_is_self(css) && css->ss->css_rstat_flush == NULL) + if (!css_uses_rstat(css)) return; /* @@ -390,7 +401,7 @@ __bpf_kfunc void css_rstat_flush(struct cgroup_subsys_state *css) * Since bpf programs can call this function, prevent access to * uninitialized rstat pointers. */ - if (!is_self && css->ss->css_rstat_flush == NULL) + if (!css_uses_rstat(css)) return; might_sleep(); @@ -462,7 +473,7 @@ void css_rstat_exit(struct cgroup_subsys_state *css) { int cpu; - if (!css_is_self(css) && css->ss->css_rstat_flush == NULL) + if (!css_uses_rstat(css)) return; css_rstat_flush(css); -- 2.47.1