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 302E5C3ABAA for ; Sat, 3 May 2025 00:12:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4844C6B00CC; Fri, 2 May 2025 20:12:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3E20E6B00CE; Fri, 2 May 2025 20:12:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2353A6B00D0; Fri, 2 May 2025 20:12:43 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 007B06B00CC for ; Fri, 2 May 2025 20:12:42 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id EB09E1209F4 for ; Sat, 3 May 2025 00:12:43 +0000 (UTC) X-FDA: 83399670606.25.629471E Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) by imf22.hostedemail.com (Postfix) with ESMTP id 50217C0008 for ; Sat, 3 May 2025 00:12:42 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="KI2P/mrp"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf22.hostedemail.com: domain of inwardvessel@gmail.com designates 209.85.216.48 as permitted sender) smtp.mailfrom=inwardvessel@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746231162; a=rsa-sha256; cv=none; b=n/+XIVzk4fvgveNmHzSZ1NvKJb0bYhVuLTrJxHOTqshUI2SaFyJKS+vYOxlUXj4wzYot0K zeEVSJRSTaaVfP1mTBp/khmRqhcWs9uVPUTaK37vFfhyDhu9dqLwS1IcrkAeWfsug5s8ru h3i4aoR8v0FVpYu3mfKEC/H90y+Hb+o= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="KI2P/mrp"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf22.hostedemail.com: domain of inwardvessel@gmail.com designates 209.85.216.48 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=1746231162; 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=vpZ4BaSoWASsFEQSnMoCsr7HDlWnMYdZDLDUej72/H0=; b=1c/7aFtbqCGRA6jNB67dO+qU+a7lptIXP4S75Glp+CJOCpTY6msyoZKgQ3aGv45GXsLoM+ 7Uf5O8sYrE6PAXhPGElrzMfyumGtIMTSyFLN9CWxz3xTg8ViMQPuNUHXrsDZsbEjdqyvNG mvBJc0+AtB3YRHQwLg3xYUJ4fVRyTa0= Received: by mail-pj1-f48.google.com with SMTP id 98e67ed59e1d1-306b6ae4fb3so2908689a91.1 for ; Fri, 02 May 2025 17:12:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746231161; x=1746835961; 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=vpZ4BaSoWASsFEQSnMoCsr7HDlWnMYdZDLDUej72/H0=; b=KI2P/mrpgDFWeL598JgI73It6oKIMTMVdN8UA0idmtr9cHFdPuh47BN3eQbDOsNV8c w3r/8MonBJVq8HD66ze8a4fy0F3+c65cJuESC5IIp9YZoIP3OZDejxV1l4rMgkIJS8TD 9IOHsQeKB/vdke1DIOOqUD/vvFP9JdC1PsNyLrNfRrmlly4Jnvw5C37dDhp5MufJOHlX +v6m/TnrANSJNez3d4F2Yn1Xes/0qnE2v8RZYJ3KJ5HxxtdW+9yOmL8R4qLYWi8Qol7X KHZQtwGSPRYZX5Jp4M/wFzt7B5PPghnp3KjaDnzVmqbbC6DgcvWM8wI5C2ZlMGB1y/09 KyQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746231161; x=1746835961; 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=vpZ4BaSoWASsFEQSnMoCsr7HDlWnMYdZDLDUej72/H0=; b=WRwB/4xVUcjS5DyDxiAwpHYmcX3hoMiSxoDxXgDT9I4PX0H7hX5fBZQNp5cWdg3EV2 oYBXPCmZ43yD72ysw8yyomEO4lTf8wGpq0oOW9MTO4fP0iKgz8RJ7MehL/eCNobBNNdP YiycHIGFk808LfX51IA5lrgOEXv62riGxmYvbokxPkDCMLgS3Pa/iAdWy8fLDj2wZfPy GmLlK7Sp4uh6DMo4QrxQ2qVMWofewVb8e3wmIkiSiw1rEj0eRwplxhIBo/9yhvWTK3Ur uj4Uh6bUqjLRwgY6AS6F6DDsEqGNwdTfbHW4X1jqsP8FP/RtH92zBDYNOM+vOJOFh74q mcEQ== X-Gm-Message-State: AOJu0Yzdx2yIiiGqaXj054klajTx3q/uXvyyy7/xQ2v8VpGPDtPVz9F0 pGUMQ7w4hqPbdT8N4KleR5URFO1Z8VNt8kga3FeQ6w0HrQchEF0+ X-Gm-Gg: ASbGnctdezAI4Reqx0Z9Gx60Fe3bvPuXycVauOPtwql3lxHo9Iwq5b9HAGUCUKfhqS8 RklBi4/6M9/18G3AFWAMyvfB4KRSnBlQYqmloXogdb5LAnijz7pW2iTKFfsGHXRfIfrErhcHX/e 58oG3aU/lDj5EY/sL4M6tIqKsSA9d4H06WTvxEFD4FPn6BXl/Jja9sFN0m/1A2iJLxQEvyPfw7d 0sK+08HkvM9HqGQ1/PUEzhu9LomxworHSaj9WvRaLj3PZDs1iKV+NJbXgx7taIyHVeG6NImGM+8 olSWePp+PRSBh1zeSvtQVcwN2xnGGm4hSerMbwK27ZOm/RKQFfUObZ8Y7I7xxLBHUmMC X-Google-Smtp-Source: AGHT+IFt2nyPOKzv13Xrjiys+GI74FaDGbIUg8F2878W42EwIGaERqz5rwUXILn9PCV27yNkcy3n0w== X-Received: by 2002:a17:90b:514b:b0:2ff:6f88:b04a with SMTP id 98e67ed59e1d1-30a4e5c5ec1mr7405455a91.15.1746231161061; Fri, 02 May 2025 17:12:41 -0700 (PDT) Received: from jpkobryn-fedora-PF5CFKNC.thefacebook.com ([2620:10d:c090:500::5:6a01]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22e15228f9csm13718635ad.178.2025.05.02.17.12.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 May 2025 17:12:40 -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 v5 4/5] cgroup: helper for checking rstat participation of css Date: Fri, 2 May 2025 17:12:21 -0700 Message-ID: <20250503001222.146355-5-inwardvessel@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250503001222.146355-1-inwardvessel@gmail.com> References: <20250503001222.146355-1-inwardvessel@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 50217C0008 X-Stat-Signature: amsab4ybkj1ymktwdpm8ec86kwuux83u X-Rspam-User: X-HE-Tag: 1746231162-279404 X-HE-Meta: U2FsdGVkX1+ypUy4qwWxpEYe5vmm2Mp9aD3wbU9HZFCJHmOnOOSB8FvkVVSbSAP+KJSBe4cVOLD6mjCcOUVOzk9VFL+E3zpe7lGA3Ctjtcxy87RS9LSDmjdGBmNi0rRZGcNnXPH32fFL4X0ujumxAb/E0YOdRD6FHO4vLPZMRFZRd5HeScTFAQHhR+1Wcc04NycKavAo85FHpaW2xXRg4/R6uExR66Y3EDE5YlvruRPr1cxQi+lOVI5wuGn41a+RDzXfF8QM8A3oz7eKLs7hfyIVgrZu2/LH6PqiQckct+FNarpnzW7tSd+aCZXyodUWVRk9ShgIzZnxY62c8fWCMmI5xwMvhGnqlN2veFI5xrGZnT0zvehHdM9zGyPFdRcJ9F1HoAV29T1pfHGbWCw8aGBpVvlZijhQqjVnYH7CS8MAxVzO2QutI0NuSvF6htT++jsBWOVWtJsENnOhyB3LgIzRwNXC2mh9oMEY8GMl39J8qz/SGcaFHx3X/yYVwPxsjVtBOR16jmI9c8EAPfOGKMIAOFmZfq7K389qjQdCK3rNt5dqqyfdClWjbKnH131XgxmhueTbSIoa0dZq2GbT9D65Qe0ZftY2DDYxZcrKH07KfnSTzzXN5DKIc0kOWelbZ9/QkzpCCKjUag4vI3CDQAyjkV3wa/apwJF/f+VFar+nI2bi0KVq6jrcicdW2C2SkDxteeoGRWDsu8pduMofxZfFFaS801rGOs9V0XNqusARdyADV9pKc+pGHcPEl/wOxMbXz6wv8+CClG4iSbH6Z3OSDNDizTmR6pbA1Wx0HTUOdWfc9zCioJPGhI6UEuL4PnwOrxvp6eNse1wWwvbygtz5kNbyAcKp0nwH6y84KXBHiECuOSK+xcAsjoKikIQkRX/47+ed2USvmavQx3TjOigkUX1+ASHjclmC+24R8PQ8OyjFDmB9h37hOLwg+AAScTIRblXZAuuixud2unj A41ejbDY uDdKSlNrEY9wTsj0= 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 e1e9dd7de705..15bc7ab458dc 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 when they + * define the ss->css_rstat_flush callback. + */ +static inline bool is_rstat_css(struct cgroup_subsys_state *css) +{ + return css_is_cgroup(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_cgroup(css) && css->ss->css_rstat_flush == NULL) + if (!is_rstat_css(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_cgroup && css->ss->css_rstat_flush == NULL) + if (!is_rstat_css(css)) return; might_sleep(); @@ -464,7 +475,7 @@ void css_rstat_exit(struct cgroup_subsys_state *css) { int cpu; - if (!css_is_cgroup(css) && css->ss->css_rstat_flush == NULL) + if (!is_rstat_css(css)) return; css_rstat_flush(css); -- 2.47.1