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 5D203C5B555 for ; Tue, 3 Jun 2025 03:38:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8DD476B025A; Mon, 2 Jun 2025 23:38:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 867BC6B0271; Mon, 2 Jun 2025 23:38:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 756C86B0294; Mon, 2 Jun 2025 23:38:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 51C116B025A for ; Mon, 2 Jun 2025 23:38:58 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 9434F81C11 for ; Tue, 3 Jun 2025 03:38:57 +0000 (UTC) X-FDA: 83512683114.29.C0E8554 Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) by imf02.hostedemail.com (Postfix) with ESMTP id 8A29180004 for ; Tue, 3 Jun 2025 03:38:55 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=UX44tHM2; dmarc=none; spf=pass (imf02.hostedemail.com: domain of groeck7@gmail.com designates 209.85.210.174 as permitted sender) smtp.mailfrom=groeck7@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1748921935; h=from:from:sender: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=KdshqhfrK9A+GkNCMIMiok2VKYkDBtwMGG57IjQgZrc=; b=KHSwAU1ueACa2NSH8Lb/bwjdIobCy5CYO/7nBbO4UdYJlKwulVGgVlPbAs46fYO/5qBV8E RLTAwPUDColRZ3qwkngEq+B8JbOdTaugjdM84+y0U9RYTkZq5M7YpnxtPQfu5f7e8QvenW wd57tAfC7//1HBqQs2e8nD6S2+lnKuo= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=UX44tHM2; dmarc=none; spf=pass (imf02.hostedemail.com: domain of groeck7@gmail.com designates 209.85.210.174 as permitted sender) smtp.mailfrom=groeck7@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1748921935; a=rsa-sha256; cv=none; b=IU1KGG5/QJi3ylL/UEtPzbSroJWcG2hMOv8fHhfkWDZ1tIxKjHPOzaqVSYPoUdvPkBrRrr G8okUYYw63/Dfppk8m/vzXVHAYjPeUMGPn3CYpsLI6YZN/SbZneURIoU/qI31fyv3YUfJm rmxRB0LWBBfPDnylc1N+Wc/IGAd1IEM= Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-747d59045a0so1529911b3a.1 for ; Mon, 02 Jun 2025 20:38:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748921934; x=1749526734; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:from:to:cc:subject:date:message-id :reply-to; bh=KdshqhfrK9A+GkNCMIMiok2VKYkDBtwMGG57IjQgZrc=; b=UX44tHM2oQ5CgRu8hFOkMpFLbVPtsFFhrBeKhj5aY3nGwoPBkeRmVoltP7rE6qcKLc 5BOIH8HiDywqXyT9lHrkoXECU/Ji1z7nPu+VZ8Vglr+GGkQkuLViib8HVrpYyms6ruXB /SfV6Si+lGLDO+LbxAOVWXomhhrbqWlCLA9uQONZ5F3OB15DB7rUqdOsN42uHAUVJ4zd 4H9DCrIxEohurk4iSXva0rRqP+SRR/agkeBrqFZ0/+a8oGZVzaoBckzN1ww3oOsQa2MQ N64W6bGgpe6+PXWa4cC5YtmWCePtK4m5eZR35w4s8D0T/n9WYpgwr7E7CKdIRZdy+STn Yx4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748921934; x=1749526734; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KdshqhfrK9A+GkNCMIMiok2VKYkDBtwMGG57IjQgZrc=; b=fYSDj/WVY7Uw0nDTosqKTS+mMHW4Wh4X0nmFChoPOLEGtBxuoQJ+0EWlgXKHwOhR+H gJ8L3lTXXIZ/6j6hvjN/++HAKgD5ogbhRYfml/he6hYO+Gpy3sVmbF1jbrZ+gsceyJ2u 7fOQ8/tVK94BemquAvz09+K1HU0aOAgq0Rs6S+xnosU7QLd29taWcE4VHcddbnKgAacR aWMrCsCj00y9YYh/93bGvwnhr5XsHVmxM2Ogd7zqKycepPAukJ0jVnzPVgTq/5I+wJr5 ghumZURmh3h4fjiueYz09AHdYnHH2pV64SQ4E1qVbCUVBcZrP1jfyviL61prh153YDDv /O7Q== X-Forwarded-Encrypted: i=1; AJvYcCX+0qSF0kht+J9/uWzqxf/BBbNvtQH2h+9OrjOv4pnJrT006rLrD+WnlOGIGKzaGNYJAJjWhgV2ig==@kvack.org X-Gm-Message-State: AOJu0YyZz7GBNR2hlz4uTsBFLIgXECTd56Nh4lkImyi6XfgOgu7m9RSk tYHv13fJVFvP0uxanuaR9RLQ82HZWs5KWlviAH/nb+ca+0PWZiKPrmkz X-Gm-Gg: ASbGncsiwAdZhwTS1HJU6oPibZ0qzcm+XhXuhz60AHUBt6YxgEHJXHFD0UFnOx+WSFY Q5BonAYwsuuc3rlRFNh9KQqjSPmraK/imVh0XJmFjb2M2jLqR8gKMwGuyWzXlZyu0ZqN+GWcQCU U2igwuHJkehoydLGvvRp0yQlE3P5UoBAhFDI9ZHdQdpNSLTY8xshr5i07DGkSKWbFQv6oNa2MBU QWg7GIyjyd5rMHij9tpkx7JRCdYScCLcTg87NSNlfHds52dAGWVFLw7JrSbjw1nCeanRl9cNvC1 3kfgAPNeWna4HlNur0RSFwVqoICSK+Y1RbbBr5vptwYhnm2jaJTyn89+4E3IbtSZ X-Google-Smtp-Source: AGHT+IGvLwYBgIzKTGJF2+LnrGkWsZgaUU5bS6y0rTLlIiC+7fSFJrt3NEMZMI7ZwNCpTziCDaQinw== X-Received: by 2002:a05:6a21:110:b0:21a:d503:f47c with SMTP id adf61e73a8af0-21ae00b15c1mr18162559637.28.1748921934310; Mon, 02 Jun 2025 20:38:54 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:da43:aeff:fecc:bfd5]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b2eceb048dcsm6287622a12.12.2025.06.02.20.38.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Jun 2025 20:38:53 -0700 (PDT) Date: Mon, 2 Jun 2025 20:38:52 -0700 From: Guenter Roeck To: JP Kobryn Cc: tj@kernel.org, klarasmodin@gmail.com, shakeel.butt@linux.dev, yosryahmed@google.com, mkoutny@suse.com, hannes@cmpxchg.org, akpm@linux-foundation.org, linux-mm@kvack.org, cgroups@vger.kernel.org, kernel-team@meta.com Subject: Re: [PATCH cgroup/for-6.16] cgroup: avoid per-cpu allocation of size zero rstat cpu locks Message-ID: References: <20250522013202.185523-1-inwardvessel@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250522013202.185523-1-inwardvessel@gmail.com> X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 8A29180004 X-Stat-Signature: 58m4mgepxyauygjmqzstmupx5y7ahir6 X-Rspam-User: X-HE-Tag: 1748921935-357201 X-HE-Meta: U2FsdGVkX1+lvvlqUY04FXJcxpAQ2XAvzcG3Exovep5GQpYRQDvqzbifPp8t6nh4uPW+MA1LjYtGbdui0ZnctdHyWJCn88085c0aSr5bwjxSPYsTZpz/4+Fys+dlGCN8vQuya6d+hEgctYUkI2YjVp4H1TNbbYgItJ5IufP/k+fz3QhfAedqYJglrukVyFetpS1SQWTjnDiXIKkw8LJUDsf39QH9FbVG/FapWek3H2xtmiAKRMr3gAICm3F2Q5MYiTO5TuyLyJO3cXhJO1y4kdWFCSUV7JFU9ayNoa0YDLai6ZYsZ53gOvk7vwXarXgimzIRAvcBVbVff5xhuhcG1CCd+Xv8AMyXluIlyTY9zj51trRndBsss9l6MMSnooWSFwJaDb6NSXdaed6NoVyZ/c/libbN3DDdq/pPzrQP88rF0d+B/ZHOzAdPTJjLxenPadVuod/Qgilqg/3pYsYHD427OXwFcd4NVp6Sb8vzGgcXU1uVPz0Q3Uza37vu5cZ9MD5gfSrUgk0Oh0UK7JX5SVXv1Wtp3DrXMuNLc8kFPjrXPQEGR5Z4GxWIOIfju/qSkge9TWRBWdOOLCE0xXNnw49SJmtaPvivNTM5MJlWRxbRziPjvRWkvrcemQlSUyedSmIwQgq2h1oYl6mb1EB9bo1zt7V6zzvHUOFZfIzDbNIcSY/zwM83bcmvCup7FJIutlsiMpI1cZhbifJxW0CtlpcKo5loWqjROmdAeenowkQ9UWcS3oRk9n0VFyk2L6DOlB04/ThmYYRTiXwd3zn/DE2i+vTBX4jEK6uzRfaysbwWUlHj9eX6P7t/mOZj0Is7MPJIxIRn1r3AiaPPT+Nt3v5fhpY5sJDUjCcKhShoTFwvvdr6VVLsbYFYTP6MiNXcAJYE3tsUyC7f7manEEQ9HDWWu6oAMGHJRuk61UAoZ8pLl3xoo9GbJyNvqu4MP7ASP9XeabS0Hfg+N47FhX6 ZA062edd i6aHecjrcqlW+L8cH98U4E0ZDRviTw8ZX6VCkjqjoyMePi6v3PufXZzKQu3C0xgyN3L1QkdvwZA83RHkYxmkH+diLjBtBt4VRLboljg/Cq4coMUJD6bUWiYorFDwZc46HJJc2AwSgFcIN6+imMvfLwFYT2Q9sGHcmjygTtY1V/wdzqnyGQFTMEHY1SFKj5vk9xGqcMRp8W4o8PLgif0vWTYHzL5OCOu/DxixeICKihQSvvokEJNKZPT83n/2BUsC4wuLctGYUz2Iql0KPenvELt+389tB0UTtPh3BE+v31PWPz001iDqpPes8LpMpJ3cGSWsjM21mfkGqm+B2jVB4HNvy6T6xuWK4HaLRTYp7HML0LXZ3QVdPf6wyso+4+R2Tg2hDJnFQVMJg066Xfz+gdiXG1Ok5FKRCVljb4xqKTcOwAeRfcOdHHEDsXM1i+GN/HlRnIMLgUvtH/XtIh1XzDZIXZTeIu9FvQWKa6aPH3lrF04uKiR1ShKeq7Vxzf75gNNH4nfGTl2avpLawezWrlzN+MYpDn0P68cWpS9WO7K1A2wXeR0pZIZ+DVAwWHMxfsKrntofT/D/r3P0d86fniptH/jItnNp7NqOM 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 06:32:02PM -0700, JP Kobryn wrote: > 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. > It may be defined as empty struct, but it is still dereferenced. This patch is causing crashes on non-SMP systems such as xtensa, m68k, or with x86 non-SMP builds. Examples: m68k: Unable to handle kernel NULL pointer dereference at virtual address 00000000 Oops: 00000000 PC: [<000593d6>] __raw_spin_lock_init+0x6/0x1c SR: 2000 SP: 0086bef8 a2: 0086f440 d0: 00000001 d1: 000001ff d2: 00000001 d3: 00000002 d4: 008e3a20 d5: 00000001 a0: 00000000 a1: 00000114 Process swapper (pid: 0, task=0086f440) Frame format=7 eff addr=00000000 ssw=0405 faddr=00000000 wb 1 stat/addr/data: 0000 00000000 00000000 wb 2 stat/addr/data: 0000 00000000 00000000 wb 3 stat/addr/data: 0000 00000000 00000000 push data: 00000000 00000000 00000000 00000000 Stack from 0086bf60: 0099d64c 00000000 007ff7a1 0092e6c0 00000002 008eed3c 00938c60 0099cf92 008eed3c 00000008 008eed3c 008e3a84 008e3a20 0099d300 008eed3c 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00703cc2 00003b18 0003f9a2 008e44c0 0086bff8 0099639e 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 009cc000 009b8a7c 00000000 009952b8 Call Trace: [<0099d64c>] ss_rstat_init+0x5a/0x66 [<0099cf92>] cgroup_init_subsys+0x102/0x1b4 [<0099d300>] cgroup_init+0x18e/0x47c [<00703cc2>] strlen+0x0/0x1a [<00003b18>] _printk+0x0/0x18 [<0003f9a2>] parse_args+0x0/0x380 [<0099639e>] start_kernel+0x5c0/0x5cc [<009952b8>] _sinittext+0x2b8/0x8f0 x86 noSMP build: [ 1.151991] BUG: kernel NULL pointer dereference, address: 0000000000000020 [ 1.151991] #PF: supervisor write access in kernel mode [ 1.151991] #PF: error_code(0x0002) - not-present page [ 1.151991] PGD 0 P4D 0 [ 1.151991] Oops: Oops: 0002 [#1] NOPTI [ 1.151991] CPU: 0 UID: 0 PID: 0 Comm: swapper Not tainted 6.15.0-10402-g4cb6c8af8591 #1 PREEMPT(voluntary) [ 1.151991] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 1.151991] RIP: 0010:lockdep_init_map_type+0x1b/0x260 [ 1.151991] Code: 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa 41 54 41 89 cc 55 48 89 d5 8b 15 9d fc b0 03 53 48 89 fb 8b 44 24 20 <48> c7 47 08 00 00 00 00 48 c7 47 10 00 00 00 00 85 d2 0f 85 8e 00 [ 1.151991] RSP: 0000:ffffffff8b203e38 EFLAGS: 00010246 [ 1.151991] RAX: 0000000000000000 RBX: 0000000000000018 RCX: 0000000000000000 [ 1.151991] RDX: 0000000000000000 RSI: ffffffff8b0387bf RDI: 0000000000000018 [ 1.151991] RBP: ffffffff8cc48c20 R08: 0000000000000002 R09: 0000000000000000 [ 1.151991] R10: 0000000000000001 R11: ffffffff8a786934 R12: 0000000000000000 [ 1.151991] R13: 0000000000000002 R14: ffffffff8b3c8fc0 R15: ffffffff8b3c9028 [ 1.151991] FS: 0000000000000000(0000) GS:0000000000000000(0000) knlGS:0000000000000000 [ 1.151991] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1.151991] CR2: 0000000000000020 CR3: 00000000220a0000 CR4: 00000000000006f0 [ 1.151991] Call Trace: [ 1.151991] [ 1.151991] __raw_spin_lock_init+0x3a/0x70 [ 1.151991] ss_rstat_init+0x4b/0x80 [ 1.151991] cgroup_init_subsys+0x170/0x1c0 [ 1.151991] cgroup_init+0x3d8/0x4c0 [ 1.151991] start_kernel+0x68e/0x770 [ 1.151991] x86_64_start_reservations+0x18/0x30 [ 1.151991] x86_64_start_kernel+0x101/0x110 [ 1.151991] common_startup_64+0xc0/0xc8 Guenter