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 04FBBC54E65 for ; Thu, 22 May 2025 01:32:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8F5376B0085; Wed, 21 May 2025 21:32:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8A6C66B0088; Wed, 21 May 2025 21:32:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7958B6B0089; Wed, 21 May 2025 21:32:13 -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 568146B0085 for ; Wed, 21 May 2025 21:32:13 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id E0D1D16195F for ; Thu, 22 May 2025 01:32:12 +0000 (UTC) X-FDA: 83468818104.10.2240189 Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) by imf19.hostedemail.com (Postfix) with ESMTP id 2A3281A0011 for ; Thu, 22 May 2025 01:32:10 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=TwtrbcLB; spf=pass (imf19.hostedemail.com: domain of inwardvessel@gmail.com designates 209.85.210.171 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=1747877531; 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:references:dkim-signature; bh=3k8n2WKrIH/cUIa1eGMWikO+qTQpaoon0a5hPuvI7iQ=; b=mbvgv4Hvgw8zevxMn6nmREYQW68zIyTtGYPNe71KlmmfHmmk2BefBQ60EvT++UX0xiytMV u8ENt69TPNlsUsN1/39ppOBFBgrdXKQs3FBrx0pNMM63FYaXbuLx+8WIJ8jh1uSZDwbFTU Zlc6fSwt9bBy5JHlMMBfk95sujlhL6E= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747877531; a=rsa-sha256; cv=none; b=bacVUzhsftfv3l1p5UKWIoSlhaSAYdPevdvX+dM2IqkCQgKCNcjsjj1fMMfIK41hlRtDRp RNfvsQ29kfwDQ10nYFl2abp1C1d+XziI5XXSN2bU2BzhjWpVd1HDtqAXn08c2uDO+8kpvY cg5eZwid3Byrx09J3hJQmLFYOAJrIT0= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=TwtrbcLB; spf=pass (imf19.hostedemail.com: domain of inwardvessel@gmail.com designates 209.85.210.171 as permitted sender) smtp.mailfrom=inwardvessel@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-7424ccbef4eso7242412b3a.2 for ; Wed, 21 May 2025 18:32:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747877530; x=1748482330; darn=kvack.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=3k8n2WKrIH/cUIa1eGMWikO+qTQpaoon0a5hPuvI7iQ=; b=TwtrbcLB27/hfBIZ+KZiOQL1E8z/0MeK89zGYBFenOZaNHsgO6q4efIeomWU7VpkkV 2dZTOg1gYEFipDNciVJUtLQKDzf9+tqNM+vBCwdL8TU1PUX49ylePc9x69O5SF9GdY3l LwlOQkuAyOEPsQm6vuAiwRvQo8xpKXKQfzlwR007czLb7vU96tdcIi5x2y9hNSZk3i3u bOWiq+lJgyBuvdb2mYnD+9PyjcZN8JUEUhYbULVMOz8+m1/NcHpnk6/eynOonq+H1cUa +0EjKEpmFMF8sdVHDRuWgDi59ZzsmIKPlYAWHlRJ66YDtYJH+9O34NdNxH7Z9tVTj2Lm u97Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747877530; x=1748482330; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=3k8n2WKrIH/cUIa1eGMWikO+qTQpaoon0a5hPuvI7iQ=; b=HYsjG8V6EvXKC3e+70oJa89QJgbvxuYsd0byDD78ergOlJpV9Sw1Dm/nbMIjOG2EHS 65GJLzkHgk/IPZOvaT1xV3ttfgpsggOjLHeMhA83Fpa+njke7K+APKDqDWjX4syZ/dcU yY2SCWqevwqyZ6Ak1qL0B7QY4e8Rn4GztH4FbHAd8yZRur0OSV1FKTzZA4joO4UMLyl9 1PIYXiOLfYCI172VgbHNmlAk1cB6OIDmpO3/gDRK2S6IRYAOlinROYZE6yR4PdwbJusy 1OehK5Hy26Bo5EXHlX5QQF8FT5ffSEEVlotTVb0IMafb9ncVBlzBUm8d3s2ZV//ly4dk ZwSg== X-Gm-Message-State: AOJu0YzdSX9vZt1g8HxiqiunR5FmAuJd2DIHZUkvQ4OgbrG5lyj8qeHi njZZzU4hH3o8/HW5ANFscNUgMVb6YTR/rTbT4uSm5tVyWL+n7lUaTJLO X-Gm-Gg: ASbGncs3gvQZ4kO05RX/ZuaRQ/0DK4TUVTtRwSk52A78YLehAnI8B9Dzxu3OlznmwH5 VlMkY+Agju+IdE37Gzk3DOK1jg9jKCWRTRcwir5exzrXaMuljhPgDzg0L1y1TfjapMIoA0JD7Z9 frcnm3gKbFeZe7Iag7vjeJEktDBPnUyIWUbutNniZwkOog93Xjq6q0YualEC3uYwWtPgYsN/79j +PokiNMy5WJwAz1ZaLMw1FJYFCZ4mw4rcuk2j2F3zfEdJ/bKRlArcxhoyq0mH6Q8K2mwk3Lk6TD jp+4OaxyAGNYJFcdfO60QbZ24cMK2Km2DOr2AqeNtER7g0dkZIIJmbNE3HPYU97aGWSXceyyNWL CO3N78i2Ri9x1yaILQynp0iy2+t9eft2EOm/9pYs= X-Google-Smtp-Source: AGHT+IGTM661qss1rttcNzOQo9j6qrZqGft776dcEyD95S628ibSQad1lP1aPSwNv0WIArTTx7NL9Q== X-Received: by 2002:a05:6300:218f:b0:204:4573:d853 with SMTP id adf61e73a8af0-2162188b7ccmr33584268637.4.1747877529858; Wed, 21 May 2025 18:32:09 -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 41be03b00d2f7-b270808b57esm6965582a12.75.2025.05.21.18.32.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 18:32:09 -0700 (PDT) From: JP Kobryn To: tj@kernel.org, klarasmodin@gmail.com, 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 cgroup/for-6.16] cgroup: avoid per-cpu allocation of size zero rstat cpu locks Date: Wed, 21 May 2025 18:32:02 -0700 Message-ID: <20250522013202.185523-1-inwardvessel@gmail.com> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 2A3281A0011 X-Stat-Signature: edj418d6ctmbxctpk1a1em5ubiyqogso X-Rspam-User: X-HE-Tag: 1747877530-306159 X-HE-Meta: U2FsdGVkX18AKi8eF69JYH8DrBp2f0BCezhj8NBe+cFRZJrRIp2J2XTV3339jk/ACNHpa8AnOmpOtwQp+ZHdFFY/qrRQaF3Ua8Sed0RRMg4qDg8RGo+27BgrSAbqgsnTbQ6sjdHjk0RCtF4YxXthus264bixQH2z/9fxgbzPDGmZzuKC2+iDQQh97tFGHWpueIymlJ9CVAO6vSGkvli5PyoPngvw18XTUyISugM48OLAgiGLlczWKfuqzm2qfZhu0B/Am7PwYIlmDzcpL3twyU1TSWeTYW4wjG0b2LlhrQv3pHtu9v1kJicszSvvDzBacfo/p7OJBZI/MMTL8cnHnoX1iCv/PWw/PXG3EkUdgss44bL7q3x+IBZh7rjgJmfcj3lZ4HU8OKbjPkoC8JJGsOAmxRYAFBLxbZitLBuKPhDDv5+/bW5FTP4IRQw0ZPf8XPX0UvAcNEfbE3Bh0av6cKf5h+gCmJ1qN60NBhZ7WZjEjJcSdi5Ru8kt0jV02PKTACftnUEKO80dyoVnJ1F98xcA7d8J80yN0Bnr3sm7nn4fBjeLWHroFoDqUl0CwkOOi5YmEx8RDH3s5mRNLippM6bHsM491/tHv43wwO1a1LwJXBLSeFSCdeb5U0DmrN9Ih7CMYXIgNv1sxRMM/07i3jfoXTkQ1KywqOYWljMddHLkd02f/qLIMLfKdCrcdlvUROoaY29PGoz/8VnTciWbYDJ6pRhHYhT5Ed/SAOV6AdaIOzsPPY0kjnGSkyNYSnOQzai8Nu4wMf0x4RVZHNI1pPwn0CrgcMCKFHEKDpZr2Hk2E7Uzev05ZVIG4j45BL9QCy3001pg4OVE9yCO39hBZVjulKr16LIdCrKQ6pOiR9VzWBQSFQV1HFbFFLdK2JOzSEIXAaGJcL4ykJZu1mjtx4vr38eFbv5HU1CUdybXnbjtXiMvgN/CBKcG4L7xZEpQ/jD+l3BquoXujQC99yT 3Q4Isd34 lqCKV5M6V5A+sY/pMgTHyYv93X15r8jJLaJlQNsgZm9RXYWHOjJDy5haxy9RUzxuSY8pVt0P8vNImMgcRc4Ks/1gPmcve2gJaPNodGzu9uKee+vfX40I9Vb1Awv2hYUmWc2LN8BAGbDXGw1jPRdD5eIAc2uNxGfhKPJv3p8G6bnM0n0UK6N08KG5oUosDnrZtFZPjtErMncdFtEhA7V1VHsQKRdM+HTBiOzbpr2D7QsBtY9xJEJuJr7Rp+v+EwabjEDFWExIqLaHLKE7ASg0u5vHekQk/BGcLKJ1CdsFTc00s+qvTuSr3fDLNQTb/AQytggGcX0uaM9+uAFhU5tQD2qXWONKdR2YpstAFjSVwEYI9QO1p+cxXIXAzhA== 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: Subsystem rstat locks are dynamically allocated per-cpu. It was discovered that a panic can occur during this allocation when the lock size is zero. This is the case on non-smp systems, since arch_spinlock_t is defined as an empty struct. Prevent this allocation when !CONFIG_SMP by adding a pre-processor conditional around the affected block. Signed-off-by: JP Kobryn Reported-by: Klara Modin Fixes: 748922dcfabd ("cgroup: use subsystem-specific rstat locks to avoid contention") --- kernel/cgroup/rstat.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/kernel/cgroup/rstat.c b/kernel/cgroup/rstat.c index 7dd396ae3c68..ce4752ab9e09 100644 --- a/kernel/cgroup/rstat.c +++ b/kernel/cgroup/rstat.c @@ -510,11 +510,20 @@ int __init ss_rstat_init(struct cgroup_subsys *ss) { int cpu; +#ifdef CONFIG_SMP + /* + * On uniprocessor machines, arch_spinlock_t is defined as an empty + * struct. Avoid allocating a size of zero by having this block + * excluded in this case. It's acceptable to leave the subsystem locks + * unitialized since the associated lock functions are no-ops in the + * non-smp case. + */ if (ss) { ss->rstat_ss_cpu_lock = alloc_percpu(raw_spinlock_t); if (!ss->rstat_ss_cpu_lock) return -ENOMEM; } +#endif spin_lock_init(ss_rstat_lock(ss)); for_each_possible_cpu(cpu) -- 2.47.1