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 2FFEDC54E90 for ; Wed, 21 May 2025 23:47:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C2D3E6B0085; Wed, 21 May 2025 19:47:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C05166B0088; Wed, 21 May 2025 19:47:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B42A66B0089; Wed, 21 May 2025 19:47:50 -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 9465D6B0085 for ; Wed, 21 May 2025 19:47:50 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 464F81617D7 for ; Wed, 21 May 2025 23:47:49 +0000 (UTC) X-FDA: 83468555058.11.4735814 Received: from out-183.mta1.migadu.com (out-183.mta1.migadu.com [95.215.58.183]) by imf18.hostedemail.com (Postfix) with ESMTP id A9AF51C0009 for ; Wed, 21 May 2025 23:47:47 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=bhO6Mbtk; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf18.hostedemail.com: domain of shakeel.butt@linux.dev designates 95.215.58.183 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747871267; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=DVq5FQAXCRNmQoLttDa8m6sdhR0LLw344xckKZXB3c4=; b=NVrmOa1L4cYfnXuTxJt66aU6eqpi/8MIXZCY0wJIzm028WUGkPIgnGAsvGc0NRo31plbss 4kBtQzWtzxmBr5nManS465n89ZVi6I92ZnH1Ra/tMI+1L8QgEWMiUgIMXlhaJKD3ggXyjt EBNTVXT8pb/d1D/ej4oFuTMtxJVhCJ8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747871267; a=rsa-sha256; cv=none; b=vPbR9tzQvQLziu/XuFpg+6nFovZ3sRWvizZMQQ8s84PZ3rMginGUmda1tuf93/GQJgi+Tt HPRa/AqSM+Lzd9zDTbp9JuVaeBDoyBiOKP0A4MI9Pf/PkJU7ka/bDSHKcY2ms7qstUt96e z7k8Hk9S+aQW1I9t/D7L4Q8SxgZgv3M= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=bhO6Mbtk; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf18.hostedemail.com: domain of shakeel.butt@linux.dev designates 95.215.58.183 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev Date: Wed, 21 May 2025 16:47:33 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1747871265; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=DVq5FQAXCRNmQoLttDa8m6sdhR0LLw344xckKZXB3c4=; b=bhO6MbtkwhnOfr3CAglW8jflHAKL1cPhdZr+gZspRTtwAxmDOh7Uuccp47hd0+PNYSJ6z6 sygfgXFUlEGwRB5lf3bbYRlaH0kfNv6LE3BSJsztoEk/n2jLSE8sJdkqOdiLEnMcqtcTyJ lh8K8MJ0ceeXWqCZo7uIUBLKYXE0evk= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Shakeel Butt To: Klara Modin Cc: Tejun Heo , Andrew Morton , Alexei Starovoitov , Johannes Weiner , Michal Hocko , Roman Gushchin , Muchun Song , Yosry Ahmed , Michal =?utf-8?Q?Koutn=C3=BD?= , Vlastimil Babka , Sebastian Andrzej Siewior , JP Kobryn , bpf@vger.kernel.org, linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, Meta kernel team Subject: Re: [OFFLIST PATCH 2/2] cgroup: use subsystem-specific rstat locks to avoid contention Message-ID: <77zncuxd472mhhbsbj3orcwsj7pl65s4h6uy5x6fioy55cvlsd@zmvpkrh2wfry> References: <20250428174943.69803-1-inwardvessel@gmail.com> <20250428174943.69803-2-inwardvessel@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Migadu-Flow: FLOW_OUT X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: A9AF51C0009 X-Stat-Signature: 1drajh1e6f8h6itzt48nzudi7o8ab4fe X-Rspam-User: X-HE-Tag: 1747871267-78011 X-HE-Meta: U2FsdGVkX18nx2l+WHO7spkYu55FKQpExWF8sm0WrRGLdf+pxpWrScO+1g0CfBmXzOUuWBjpvcM56wH5Q5nYnL4xwkOPmAK/6Z1mB6+oGWURENIPBU1IaYkKTpIEt9BAe7avDDUd89UKYKeY5NQhNiCb/VUahgZ2mj5wEpuTm2YOTJ9Zsm8kubxywA3JPpU4shLf/uZMMmgQaYgFEbcvZKO95bKovV3GD3mAvHWywR/AZiQTKtX9kExRrpYQMbDRWGe7QLZXSLkZWxFqedJ24J04OWLjqgVBqn9Ek2ATk0f5ZXetd4nlu4qD0qll0xVm7VYpEHqEX9DVRul31yYhPl5//cJRTt54FcDKpv2u4GEh6P6gWGjBxhpheE6A2gfjLf+JZ/d/OP4Qp7oRfo4cnCfumgFeoGWSqh2CzDuYO0wjdZPCvy1r3ZfThUyKAEnO6zF+oSK2arbcoXYLPzSVpU7wtkEVTEMwjSl0DDqT9v4n2AnEnuiQvexo0h6jm5WpApkJn/ZXu1dQiMj39E4RKpDWtbDKjMJcREmfrbqU2kNM5mpespfHej6Z9qttrV2YZs0Ti5czrU8YSV4hJreNKBtE0DO561MClfLNEh3OimR0G3dAlqZKs175/oWD8yfiIIJzDldDJNymWs3qrmcZX2YByMh12Q96YzxcKGBlQXORbgpzep8qKo3u7pyfcDWrikhPJUtXN8Pi47/j0/8uo3aKqhqVaZdpRsHQbbM4Bb/eTP1FLP0UNssZDoGDFef/oXL/PR0y8sQol2jHFhfWye7mGq1+C54ySLOcF72MNZfL/IiaAjvVSl2DM1ls8p/sTBXbQiYvQ6VsC8QFPnBGikYTY2aV5YKuj4lQkruKxQNp6uDmT8gw3Q== 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 Wed, May 21, 2025 at 04:33:35PM -0700, Shakeel Butt wrote: > On Wed, May 21, 2025 at 04:23:44PM -0700, Shakeel Butt wrote: > > On Thu, May 22, 2025 at 12:23:44AM +0200, Klara Modin wrote: > > > Hi, > > > > > > On 2025-04-28 23:15:58 -0700, Shakeel Butt wrote: > > > > Please ignore this patch as it was sent by mistake. > > > > > > This seems to have made it into next: > > > > > > 748922dcfabd ("cgroup: use subsystem-specific rstat locks to avoid contention") > > > > > > It causes a BUG and eventually a panic on my Raspberry Pi 1: > > > > > > WARNING: CPU: 0 PID: 0 at mm/percpu.c:1766 pcpu_alloc_noprof (mm/percpu.c:1766 (discriminator 2)) > > > illegal size (0) or align (4) for percpu allocation > > > > Ok this config is without CONFIG_SMP and on such configs we have: > > > > typedef struct { } arch_spinlock_t; > > > > So, we are doing ss->rstat_ss_cpu_lock = alloc_percpu(0). > > > > Hmm, let me think more on how to fix this. > > > > I think following is the simplest fix: > > diff --git a/kernel/cgroup/rstat.c b/kernel/cgroup/rstat.c > index 7dd396ae3c68..aab09495192e 100644 > --- a/kernel/cgroup/rstat.c > +++ b/kernel/cgroup/rstat.c > @@ -511,7 +511,10 @@ int __init ss_rstat_init(struct cgroup_subsys *ss) > int cpu; > > if (ss) { > - ss->rstat_ss_cpu_lock = alloc_percpu(raw_spinlock_t); > + size_t size = sizeof(raw_spinlock_t) ?: 1; > + > + ss->rstat_ss_cpu_lock = __alloc_percpu(size, > + __alignof__(raw_spinlock_t)); > if (!ss->rstat_ss_cpu_lock) > return -ENOMEM; > } JP suggested to avoid the allocation altogether on such configs. So, something like the following. diff --git a/kernel/cgroup/rstat.c b/kernel/cgroup/rstat.c index 7dd396ae3c68..d0c88903d033 100644 --- a/kernel/cgroup/rstat.c +++ b/kernel/cgroup/rstat.c @@ -510,7 +510,7 @@ int __init ss_rstat_init(struct cgroup_subsys *ss) { int cpu; - if (ss) { + if (ss && sizeof(raw_spinlock_t)) { ss->rstat_ss_cpu_lock = alloc_percpu(raw_spinlock_t); if (!ss->rstat_ss_cpu_lock) return -ENOMEM; Tejun which one do you prefer?