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 888D5C369CB for ; Wed, 23 Apr 2025 21:59:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8654A6B0006; Wed, 23 Apr 2025 17:59:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 814636B0007; Wed, 23 Apr 2025 17:59:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6DBD76B0008; Wed, 23 Apr 2025 17:59:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 4F17F6B0006 for ; Wed, 23 Apr 2025 17:59:17 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 021481A0550 for ; Wed, 23 Apr 2025 21:59:16 +0000 (UTC) X-FDA: 83366675154.17.1C082B9 Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf11.hostedemail.com (Postfix) with ESMTP id 2FD564000C for ; Wed, 23 Apr 2025 21:59:15 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=a8b0MZA8; spf=pass (imf11.hostedemail.com: domain of akpm@linux-foundation.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745445555; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=R2vtljpy8iIR5Ghd7RFyzOYJJTC+32CEJ1RKT9XP674=; b=U4UB5vB4wMckmR5uZWEo/NnjYC1VxXXrfkSgu3T8u358CmDq9fLgo9yrav1QE9fLp29dfP YjzwKnHsxCkPgUfzOO9LDGxCOgljhVeYg2UKzAq5EyhkolYUhIyuTrHH74qjcBwK+QlKVo EwQb52qDzWueeMpiakxBggT1yhRspv8= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=a8b0MZA8; spf=pass (imf11.hostedemail.com: domain of akpm@linux-foundation.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745445555; a=rsa-sha256; cv=none; b=gm/a/u0xu1wX86oluasfyZ51ioekoYZXUXQ+Wn0xJMJm29t35TXdk9edDRokh3zcrP1mcf NylaRc6yvKDMqPATAUBwdQ2Z2pt4Cz9dnh3rANf5qcA+mOmr2LdYzK6PPqOR2ZoeKKRlwz UIJP1dMEd+GYNk2yV4AtallZaBDaLZ0= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 5061549E3B; Wed, 23 Apr 2025 21:59:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 47B2FC4CEE2; Wed, 23 Apr 2025 21:59:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1745445553; bh=Miz9NzWnAK/CmNDcN+idx6rTUbeCo5M/yRi7KWMyvNo=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=a8b0MZA8XSIoNLMnm+Ac5ypsUHn8EM7NNXSX+bVAWtewvIavk7rAlPbeurLfchJfB 3HSdgyJjsG3+NvIZtYC/T95BvvbKz5jqOxaOYTQgwRbAinynQAQelaf1UTaoevSNOE WsBgGp1yw7GGL68uNUm8hN0x/9wUEuU8uTCRRPAk= Date: Wed, 23 Apr 2025 14:59:12 -0700 From: Andrew Morton To: Huan Yang Cc: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, opensource.kernel@vivo.com Subject: Re: [PATCH 1/2] mm/memcg: use kmem_cache when alloc memcg Message-Id: <20250423145912.3e0062864b6969b3623c8ff6@linux-foundation.org> In-Reply-To: <20250423084306.65706-2-link@vivo.com> References: <20250423084306.65706-1-link@vivo.com> <20250423084306.65706-2-link@vivo.com> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 2FD564000C X-Stat-Signature: tez8x1s7x7i7qq7zxc6ngx5wnb8r5kpm X-HE-Tag: 1745445555-649841 X-HE-Meta: U2FsdGVkX19J4eSEgcqM/UxqSd0D5A9acdw/xFn4Nto2F7lu1InM0sxTrBWOykoc8Nowfj7DO9u1r53XVe4YIpP9JRj8hOezTdCaDSxZsDeYjX/Y7LRnUbmU9XrbFfHFiX0xJaNzq1gqjL9qQc+4PrtuDV2qrN8Jk1VPUHWQ8KmdOlCJttBScE9uV9qxpEmNI3rh7bmkpRH21slKL8qhFOBdz5JUPGGS9Du1IcYgxE09EQIypAZrjEPzaRtf4P2W2BsvoddSTO29BHNTukhmlCCrAuA8NO96k5s/3EDKnyyTOUux3NeiaitrjgS5cOUCE8WXJvN+XAbQwXY+rcPTkwhaQYtyRaMQkkLqvDFfH4QpJJHD/7VLBHDVVyACd+aaz5lqBwS8EY5o+DRGBe7vtYy+WxvNUVSWFPg9G3ujTWYCYPSiSTMbsdTm53lg7Gq+DaTIygazjYggd9hgXMl3vj+wdWh+j4DgIb5YxDXcAzpmrDCEi3DdqDXqgPLnGPySzBjnwmLMoUt8yB1Q2fO88dj1y1Wu8b9rktt4DK8yRyIAJVq8qMi/gEbO7jiW6mV2kJqFUo1Z7sYRp4IXYztyP21aKKm8fOw1ebAf8c7oHd1STqoIwqjf1Ulbz9uO1vQOFCvWF9jgExbOw+KPIt50D/o3TbD9Ugm2z0UkipuqFth15R6bVCedZznmIsupJ5O2yYdpV8qDsIErf3cSX4ooSvWcS99Oue8zCz4fuiDDxIS4YPr1NI5xjoSjjNJ4SuymvL90EQg0C6lN3DBZRWzCcirykXFy3qKedzB+k7SWTujfpzdMlhHccaMHRXCfwCt8wlfuFVZbRW5Tf5AurBpuVJS3iNRbXXYXPKDxzHtK/CUy21lQ1ho76m31TtMkWIXgXJP+5J+W+d5y3YblqcfKy4wmmIrOG/tqdzPvKZqF71lzUIWip68Kh86pJdu+Su2KaH8oQ+BSPyV3FaFrFGg kJ0QMQbN Bv27HStMUswlaQ1PL8fgCD/W1ECFM6ZrqY5IiuPCxCRe/rfl8EhUWPC+ZvdPZJDlwnZnCG5d6iDG7Q7HswYuOcuM3j0ocF6bAiuSGdUL+s7Zx9e/Wi2M/OJSCoNWIZ12OvWYDgVwknvgF4BUf1PI1t27BYOmNWy/JVGkiqfqt4ch1VjP47Hn7XqFzls0UnE3od+7MLpRRFFe20Z4Cwq+ExwzcYUhdIfUOP2c2xEF5ZHCEkzQwfHuTE/PivsOe8TzpQlZUeXbdHZMTGTxsB44HMp/uNOWryCOuLWF1E6Aw3ieB0EvJCGanl1diH6BsLu1mBOCy 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, 23 Apr 2025 16:43:04 +0800 Huan Yang wrote: > @@ -3652,7 +3654,10 @@ static struct mem_cgroup *mem_cgroup_alloc(struct mem_cgroup *parent) > int __maybe_unused i; > long error; > > - memcg = kzalloc(struct_size(memcg, nodeinfo, nr_node_ids), GFP_KERNEL); > + memcg = likely(memcg_cachep) ? > + kmem_cache_zalloc(memcg_cachep, GFP_KERNEL) : > + kzalloc(struct_size(memcg, nodeinfo, nr_node_ids), > + GFP_KERNEL); Why are we testing for memcg_cachep=NULL? > @@ -5055,6 +5061,10 @@ static int __init mem_cgroup_init(void) > INIT_WORK(&per_cpu_ptr(&memcg_stock, cpu)->work, > drain_local_stock); > > + memcg_size = struct_size_t(struct mem_cgroup, nodeinfo, nr_node_ids); > + memcg_cachep = kmem_cache_create("mem_cgroup", memcg_size, 0, > + SLAB_PANIC | SLAB_HWCACHE_ALIGN, NULL); If it's because this allocation might have failed then let's not bother. If an __init-time allocation failed, this kernel is unusable anyway.