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 3EDB0C369AB for ; Thu, 24 Apr 2025 12:12:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E66066B00A7; Thu, 24 Apr 2025 08:12:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DEBCE6B00B0; Thu, 24 Apr 2025 08:12:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BCB116B00B4; Thu, 24 Apr 2025 08:12:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 96B8A6B00A7 for ; Thu, 24 Apr 2025 08:12:01 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id A194F1A01E1 for ; Thu, 24 Apr 2025 12:12:02 +0000 (UTC) X-FDA: 83368824084.26.A4AA212 Received: from OS8PR02CU002.outbound.protection.outlook.com (mail-japanwestazon11012043.outbound.protection.outlook.com [40.107.75.43]) by imf16.hostedemail.com (Postfix) with ESMTP id C5087180005 for ; Thu, 24 Apr 2025 12:11:59 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=vivo.com header.s=selector2 header.b=KrDa1lXh; dmarc=pass (policy=quarantine) header.from=vivo.com; spf=pass (imf16.hostedemail.com: domain of link@vivo.com designates 40.107.75.43 as permitted sender) smtp.mailfrom=link@vivo.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1745496720; a=rsa-sha256; cv=pass; b=La4MMTcC3sPN7eVowlFtSt2txzJRKd/cu2WdV4tNwwqv3/RAf/wN0Facc3rXVtkNzftE2w mbn1Q9YEMP620Al45+ilK3RKn0S5fcNK3TrogE09Y3orb8zcBUbBEaIr3RGvRzZKbWeTRc IuDYWimcNRd78oxREQ6LXQYt+4fK5RY= ARC-Authentication-Results: i=2; imf16.hostedemail.com; dkim=pass header.d=vivo.com header.s=selector2 header.b=KrDa1lXh; dmarc=pass (policy=quarantine) header.from=vivo.com; spf=pass (imf16.hostedemail.com: domain of link@vivo.com designates 40.107.75.43 as permitted sender) smtp.mailfrom=link@vivo.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745496720; 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=K2NULMSx/SoJwJqJ0bqSDKpg8Ei1TuQRy9P/VGZ5RyM=; b=p6K8HthgYWrfg5UwtYb0SVQpimyX/M4yC4QT8C6JPq+0O0AvuLdkRC/H+v49AboL8pOH62 SLPXcXco6gYi3Yq8qgWncHmuA+gj6jPNkAyMO6hKZnOFBdXFANPshmN2EwMBJO3wE4g3l7 pPB93rnmOE+d8V/8wbeIvWIbpigb7pc= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CPn6EJoPy9WJAJfrgKFkOo76StDBa+AG7rChTyxSn2CE/0pa2UcGEmF0tfb3x0avfFznfRgE/WzxEF63CHqF+pjuwBmfQ+dZf4qGxezX2qTs88ZI3MArSCSbpJp5yH7VA5Agl42wp3PrQsBZ7RkzInvNFzQWmr+0LdE1hJ4MkV87gd4hzF8taLll+BRdA1ezeTVvm0Bi52mkId/x1aAg3b+MQzHDU9e/nJubLylXfUfpyslJAQhqjotnQpLjLuQXP75UjRJnznDQl8SfTt69yfCxMQEAp5aZqx5nu7TvQN+pzdCTueVjzPq7Zvvy/5wtBgcSpCCEtFQWLcb5Tn2obQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=K2NULMSx/SoJwJqJ0bqSDKpg8Ei1TuQRy9P/VGZ5RyM=; b=QomC9Zom2WJdHD5zjPuImaDPSsed+GETSg7V67OYv+Fp2nDi0Y1GLA8zjrd1bfKZhyD6HWfgPUIXUZuJ1fhMB07UVOpqx5667Nu+jwtZZzhUvCEOhbFF7WKLuD1EtM0aE0P0J0WSy5rRdqcu2sdY0I1gl0Y8xB+E0E2BLxTdNwpKz1oIzOWJIwz8wF4VEYskBH+9xxDtfZZfoT8CHqGZM2PuDBL3r8DoqhZGjxZ1BXafbYM20IT6cQS0iME9lg9+yGNK0msgrW7tuaeLroiNaro9VoPTZm3YEEymF34UgO9El5Zku+9I0yVlkmd9NL4F+Z3iaAjl1tDGFqT9YNJOlA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=K2NULMSx/SoJwJqJ0bqSDKpg8Ei1TuQRy9P/VGZ5RyM=; b=KrDa1lXhFnqMVPCigcFTw3Z4tlcxlv9tA6CrAsYYPqEeHsGRn005Mhn9d4+7hDUsXNt7Uf6eXv044OHC9VXR/jHSrfkLYdiaVICcEjoHvylnj9apSanCj1DxglrDs/+uPN2e/9acUFVkkvWXJT8HQYUG+Xf4yrG7zFzXe+wpfv+yTG9Sys/k6Dyb7P5vKnqBIhkNV8lYRFuWG5h8ZHEEeomux/tsqy7UeB9vFtRcSZ1nko5dI9i9IHkgS3AyJbJ8WVBZtHR5+TuWrsgdm0DNRiFZ6oYNxIzdBiIYl2yNtJ3rXxgiymZV4ulGIJlx8Bly2bl6kb1eRIMaPs59Fnbecw== Received: from PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) by SEZPR06MB6231.apcprd06.prod.outlook.com (2603:1096:101:e8::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.25; Thu, 24 Apr 2025 12:10:32 +0000 Received: from PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f]) by PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f%6]) with mapi id 15.20.8632.036; Thu, 24 Apr 2025 12:10:32 +0000 From: Huan Yang To: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Petr Mladek , Sebastian Andrzej Siewior , Huan Yang , Francesco Valla , Huang Shijie , KP Singh , "Paul E. McKenney" , Rasmus Villemoes , "Uladzislau Rezki (Sony)" , Guo Weikang , Raul E Rangel , cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Boqun Feng , Geert Uytterhoeven , Paul Moore , "Mike Rapoport (Microsoft)" Cc: opensource.kernel@vivo.com Subject: [PATCH v2 3/3] mm/memcg: introduce mem_cgroup_early_init Date: Thu, 24 Apr 2025 20:09:29 +0800 Message-ID: <20250424120937.96164-4-link@vivo.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250424120937.96164-1-link@vivo.com> References: <20250424120937.96164-1-link@vivo.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SI2PR02CA0004.apcprd02.prod.outlook.com (2603:1096:4:194::14) To PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PUZPR06MB5676:EE_|SEZPR06MB6231:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ad29a89-7353-4c8e-9825-08dd832902d3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|52116014|7416014|376014|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?+XIJbNXm5zweKLZJUCvT1tE6yW+k6TRH7Jrm1NUiaEFAjlOGyMc+5F5nQNRA?= =?us-ascii?Q?7g2yE0Tu6QDXnJWK5urjVmoKyhwOe0hIP2Ytnh5M2hTgaSHp3+Kbbg56qTso?= =?us-ascii?Q?sDPIyzPCBTjsS5Sg8ALncY3JnC9vm25sADDFRC90pym+Z/Hn2TBwBQnWcrgW?= =?us-ascii?Q?VT41ZDYdDQvoFpHGokQI1Gl+dJHKa9A2Kmk75n9CQnzLyEgEIR0XXSdBcgCv?= =?us-ascii?Q?DYHdMo7iGZu8Y3oMOJiduI2DVtuNK6QRjyz7SfjPsMfPLp5ziW+8sJadNaoo?= =?us-ascii?Q?7pdaaH41jdMMCzHFDbNwDRgr6iqgfbCjUq4o5WcC56vvOWykqU/SH/Lhl3th?= =?us-ascii?Q?SVbxxMKKaBUQ4oxjcsauLKDjcAK5jbGyQxLQw+MJkeDRJRmaoQTHt8sLToP5?= =?us-ascii?Q?6mWKWi2X91VxCj5Ka0AeVf899CoSA6lR9Xs4JRkf2nG4lQEe6V8jYUnOWfmW?= =?us-ascii?Q?wlqDAWA7YqRNViUA9vHMI49EIrHdDay+J5SNBSZL4qDiygDnrWkSCi11MPuX?= =?us-ascii?Q?JptGz/5sn105B+BPDZ6G9T8rWGSf5hVAK6kB9eckX6ZNHl3HRKtSZEf1Bu1v?= =?us-ascii?Q?zs0/hyInke0Q9ggOcuV/PxblyHV92+aPs76RmszyzegH1Ktmnnt60JHciyuW?= =?us-ascii?Q?3S+LzgV0qCqL0oVor7D0XOi38NcsABt1NskkUC9ZCyhoKbibHG/w/vRe54G5?= =?us-ascii?Q?F/0MCzCD3FhNUQ+skFHrKKXWrhOeKZHijwDG+7mhDZoIi108SlKtV5VhBij7?= =?us-ascii?Q?FNbuwEm57a4BtUteorbvqKa1Hw+8OCZSi4mFB6ErXWa6KSGbtUbBJ2oZNv08?= =?us-ascii?Q?fdfj7sS7FJvemS0ISnXNV5UkNRdBJ1j60/B8YygHkdjHiU4ySsCtKEt87TH/?= =?us-ascii?Q?KH891wF94Qi5vidHURJEqKx2AKp4bZAA2t3y6AImsvlRKA91NXGCsMT1JqHR?= =?us-ascii?Q?0qZd7FUCa4XagjsjMVtECCEeTHSu7u6KAm+BIEFcEGPaZDrnI4xKGC8cfP7r?= =?us-ascii?Q?4D0pZrJIhHnOp5iwx9p27IpS41LbFtcZBq0M8BFfzhWk4wRTFHX+vibPAvyD?= =?us-ascii?Q?nBONoCCZJ4Wj2Vq+tAblsm276IWXhcjVB7GSaGh517tqlfoe4JbYc05MUdoZ?= =?us-ascii?Q?x5GLG2+kKjZYW8jNXfhCEWnDdAOmmAKtK6g0ZqyyJvQsoL//d2nG5WUFb0jJ?= =?us-ascii?Q?1hwAe13u53vwra+s7JoWYnnArDfYkbSx4dBHke3eYdJOc1uq3y4kdwe7XI33?= =?us-ascii?Q?gRkZDxd5aJpXBuM4xoY4f9QNsoLJaXZeZvzygeeYJllr6F5zJIzrAWM1TS1H?= =?us-ascii?Q?WioQ8cQ7/fFvULrHnrPvW2WcyiLMPleP0eQz1WAy+vcWN27uvXJrPATlbt9m?= =?us-ascii?Q?p5Yr+UtMzanj4pdHwYRoYPkJSgMuWAn8KwMvTgopwVWax71Im1f7ng9zvg5O?= =?us-ascii?Q?tRYFxdWoNagI7oXfYuYURJp0VhwJFbkbdRS9cr82iWTFBZSuGW+ovbw88072?= =?us-ascii?Q?cA/R045PnWbu6+A=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PUZPR06MB5676.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(52116014)(7416014)(376014)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?zAc5p1TMNEe6/RFe3U/The5Ny2fhDpPqDHc3q1e1DaemdcqN1tzyaWCA8x3i?= =?us-ascii?Q?FVchCCTonk+irmxOUbv1cmAKZ7IWemfoME3tlD9/bEoYAxf+eVyMECP80SNg?= =?us-ascii?Q?qUsnBIWJcMkYSziNcZQ1siG+T5FYGoc/7QfxJMG533T28CePknJj6zjYz7gy?= =?us-ascii?Q?3S575rQjMKfo7T9ZgWW+4WDRQgjA7BA8lobfytV5kkvs7gHK35QCob//mKJT?= =?us-ascii?Q?Pv49lu5YY4GoeiP/6A/cijfkNhqZj5EDaKMN6kRMKSLsiZ7LXC8Yx1/827zY?= =?us-ascii?Q?CAxKiNQC/2wPB+qcl0jtqXdC6/MEk+s7q25Na6nxuJv515Yhjg02LpWw5/gy?= =?us-ascii?Q?dJTdFllEGRwrfOl/UmBYiIjW+uMwADoCY4YdWP7DIhmmxRR0FF7i7qug4kPa?= =?us-ascii?Q?Zm+p7j29gB4j65clT4Nv+EfquOd2oIYmyW+3sSlhuI0LMw5ki10ZsvIYZ0Kl?= =?us-ascii?Q?TwLuzt8JQJT/L/EjWExKhTehXYl8DpI4eDOHbvuw9HhBRB96WCfeUw9uTe4+?= =?us-ascii?Q?lOUtAYAOXdqgMBSQ/+X6VPTVCpGI5rHTO6MphnyOo4GuM3RdJ70hflffrPSH?= =?us-ascii?Q?HYE83gAq9kB+ykcpmgpTzRIs8JTNtxdgPTpk+Mo7q0BCkTJlfUF24cTvI/xp?= =?us-ascii?Q?OwmxunTUO24BqY9FpZmuHfVepw+z+VD2z/I96/EKgA9l68dssMJPBtit5xvK?= =?us-ascii?Q?wIIaV2MolOkx2Al+f5cq0U3MMx2jWxX3P6XOWeuRUOT2p9biPpnXd5HX5F1o?= =?us-ascii?Q?spcEnRmWusZHgBmboLtDY5SJTc/CYO2ypNq/aVhfZEeo6LuwbFD//IF7/ZID?= =?us-ascii?Q?a3uYMtUekITFo89SYCA67E6R/gV84h2KshgVYw2jJxW/4rSPAzOxMldO7+gr?= =?us-ascii?Q?XZxEjPnJUV3dxrne8FP++rcFDwltMK5F/lo/998zWs66pFATPEhIrWUqaZuQ?= =?us-ascii?Q?qQCfDoDQnLwkp9I7WLIjYTtN6fy8OqigvdH5ynnJM6ryZmuexj73LXOQ8rhF?= =?us-ascii?Q?friq80Un4l2XzPz9MN2YRKKEwhsNis2p9MEIGSs1fzoRTn9O4MIzFaRboUmK?= =?us-ascii?Q?TfReeEyTXYRAiztmnHBjvJIRCQcUV+cTjMSUECIUxZvfXstCJfzaUeQhJ7hW?= =?us-ascii?Q?UywlvyhMMZzMPMeQ2r2S3xZwB7tZVLWEYX4eN0Aq+5XJ6Fw/i3konKNdUwph?= =?us-ascii?Q?iWtllCCXaomATFWaOJT7o9r4EPbHlmv/KOnJjcUo7U0cfh+GUXY4bq6Z5wav?= =?us-ascii?Q?pfcTMyoEOU+34LQRCRp78AbSReMzKHrXji0Mhsa/mBVuDKa0EBf+Btf50eBN?= =?us-ascii?Q?7KIkFB7KB2V4p+8D9EflfS5ytxX+JGzc4yKa6eqpGL0s50fOCIKjeivFbNU7?= =?us-ascii?Q?tirVoHAw6kdldOxKSsrypGaNLQK9qhpKPLNRSWW76Czvcy8AN024FOa69WF2?= =?us-ascii?Q?fNbM34iBHtg2LmQ9szRzBtQvzLIOrbmb82HscqSKJ2fUI8Y3oRT0HwkNmInA?= =?us-ascii?Q?gppDeABy/3hLhUX6sZFBVs5R8U2zmBipDkl2/+wFBa+7w7P2WNULtjis7xmF?= =?us-ascii?Q?pkxaKEzNNa5xItLT24NDf0bpdHooF8uWNXV8GZzQ?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3ad29a89-7353-4c8e-9825-08dd832902d3 X-MS-Exchange-CrossTenant-AuthSource: PUZPR06MB5676.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 12:10:32.2786 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: vxLRpAxweoBQXOjqvcQnFBgKTugr15P7Jz6WdT5xJ/00b5CNKeo0s4nfwC4/gSmnyZzFmCWf4OMzGf3/CmN0NA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB6231 X-Rspam-User: X-Rspamd-Queue-Id: C5087180005 X-Rspamd-Server: rspam04 X-Stat-Signature: jbd4c4cgnfofum61xjf6upe6pin716sg X-HE-Tag: 1745496719-50473 X-HE-Meta: U2FsdGVkX1+UHh+VgNcg67ICVZbvPjgdoxezhtyLjUGR0mb8iEg4pTAzuQDgnlW/5J2Aul3M6Rna6On/o/UlNi0hw8TcGmP9XtYSv/n8Es/mDREpP1sfih6TVbIqwyrVIAgtSNU7kYSN/DWDI7eJQI//Jsq7CWa1vDJDLLia1EYAgLX2l443V0O7AdICu2jrcMnP9kPwHGnnN63A7e4oEHvF2s90S4nv6BPPsjZrAOa9Fp243YftgSoVkl8M+3SHMJ3pKzoh61YJNPeZ/2ZzvPc44dKTUMgjW/KK7QeBEv0+9RC2xMXmE7R45JmG5FGNM1UvGEciU5sRL8Sxiek9jaIHhGsyU7XAuDL5Bh1gNf12tyO7WN5tCoscQzIE3XfRzEcB2w/XrlOzyG2RaeHhUfH4KvlrYaU5GySC61IxK6jSQB6GCHQ9lbMH4YGtGsjgAFvgy6UIhqsrj+EDcEoujuEO5uoI4TYgEYjbgtiR0TOwzi3jl4rpkqAKmOBOw/EXK0JESec3UCs4vOdJ/lgSI6BI/5gqiGCt48EAZxJa/NlGGfeOmmKfc4WXytu59KLjEPxGoGDNXQrvOh+kUqcLtHMEe0yWA23zUAvDwz2iC5UaDtS8qutyLDQcEt5GPLe1yw0YikjLn+2R9boaaOcAZElXS1Ywjhb8+kG4PIzO3VEuMLcRH3So2cryk/6StJ8cG7TJ+SZPTq6KQM7eb1ssitlCtWBg115RLZOVKfsJc2P2k3Vxd081Dgjy28sgT3WtA+KqvreSbNiH1w7oX5vUBhBeJR69ZXRzm9kaySswMNVS7KcpNZfDdGIO8EM8qEyIKXDJe9glWjGQlLuV5ykOd8uXfDtofg3d3DZprrNcg/VShoRlLEPCG27wpE9NzI2HAWOcSalmicv6FRm4YxnU/9EmwPTfUpy4AKzGyd3i+Fhdp0W4ilPaKtE1L7CRFO0JsHj6zcYmomF+PFFV7Eq rjWXXSev Vv5fRC3epj/fMGJk45A/tbvKAw/uHkKKRUuAe9i1ntaA0ULhcGMubwE19H9Y2Ew/YuEgRHsMjZzMea1HJL42RqFSwbAP5jku7b6mm/j0Zui8JdwxdYppUg0UcO8a/BTl9g6OcFjC+2luHZ0eQP9tbWwNVZDlboHMZ7vaB7QfGhQIQ/fde0gfpXfO2ZqgJmUEtk/gEevoqJr1oLISiagcqcKsvG2WjTty0Awynj/tvemcNO+40gWFggazJsOsxlPgSdbjYIzGeaNcf2CI8NWO6akMMuN1AGD8D2ce8/99FVOszqmF1pJ0ACNg3E2HUqp2pEKmQ4lVToTxjI+Vdgv2g/RhmQndNiUH3uJfKNSwLbCoWp33RKTHicNoM8eDbFzSWjB0u6i0ciAq9m3ZpENfeWiXkDUIQS0TgidlQo/yJLN0FhQlpWMNugE8Gl4ctgb3dsP72XY+eFRhnsDjiYrbrjF4BKeH35AKedVv8eKzvapuVHZQ6cTuITng9Isl3g4RAl84G0Gi0fb1Il8SxfBpMf659ubQqumY4euVd 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: When cgroup_init() creates root_mem_cgroup through css_online callback, some critical resources might not be fully initialized, forcing later operations to perform conditional checks for resource availability. This patch introduces mem_cgroup_early_init() to address the init order, it invoke before cgroup_init, so, compare mem_cgroup_init which invoked by initcall, mem_cgroup_early_init can use to prepare some key resources before root_mem_cgroup alloc. Signed-off-by: Huan Yang Suggested-by: Shakeel Butt --- include/linux/memcontrol.h | 5 +++++ init/main.c | 2 ++ mm/memcontrol.c | 40 +++++++++++++++++++++++--------------- 3 files changed, 31 insertions(+), 16 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 5264d148bdd9..231f3c577294 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -1057,6 +1057,7 @@ static inline u64 cgroup_id_from_mm(struct mm_struct *mm) return id; } +extern void mem_cgroup_early_init(void); #else /* CONFIG_MEMCG */ #define MEM_CGROUP_ID_SHIFT 0 @@ -1472,6 +1473,10 @@ static inline u64 cgroup_id_from_mm(struct mm_struct *mm) { return 0; } + +static inline void mem_cgroup_early_init(void) +{ +} #endif /* CONFIG_MEMCG */ /* diff --git a/init/main.c b/init/main.c index 6b14e6116a1f..fd59d5ba2dc7 100644 --- a/init/main.c +++ b/init/main.c @@ -50,6 +50,7 @@ #include #include #include +#include #include #include #include @@ -1087,6 +1088,7 @@ void start_kernel(void) nsfs_init(); pidfs_init(); cpuset_init(); + mem_cgroup_early_init(); cgroup_init(); taskstats_init_early(); delayacct_init(); diff --git a/mm/memcontrol.c b/mm/memcontrol.c index e8797382aeb4..bef1be3aad6f 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -3602,10 +3602,8 @@ static bool alloc_mem_cgroup_per_node_info(struct mem_cgroup *memcg, int node) { struct mem_cgroup_per_node *pn; - pn = likely(memcg_pn_cachep) ? - kmem_cache_alloc_node(memcg_pn_cachep, - GFP_KERNEL | __GFP_ZERO, node) : - kzalloc_node(sizeof(*pn), GFP_KERNEL, node); + pn = kmem_cache_alloc_node(memcg_pn_cachep, GFP_KERNEL | __GFP_ZERO, + node); if (!pn) return false; @@ -3658,10 +3656,7 @@ static struct mem_cgroup *mem_cgroup_alloc(struct mem_cgroup *parent) int __maybe_unused i; long error; - memcg = likely(memcg_cachep) ? - kmem_cache_zalloc(memcg_cachep, GFP_KERNEL) : - kzalloc(struct_size(memcg, nodeinfo, nr_node_ids), - GFP_KERNEL); + memcg = kmem_cache_zalloc(memcg_cachep, GFP_KERNEL); if (!memcg) return ERR_PTR(-ENOMEM); @@ -5037,6 +5032,27 @@ static int __init cgroup_memory(char *s) } __setup("cgroup.memory=", cgroup_memory); +/** + * Before cgroup_init() create root_mem_cgroup, we can prepare + * something in here which root_mem_cgroup may need. + * This currently initializes: + * 1) memcg_cachep - kmem_cache for mem_cgroup struct allocations + * 2) memcg_pn_cachep - kmem_cache for mem_cgroup_per_node structs + * (one per NUMA node) + */ +void __init mem_cgroup_early_init(void) +{ + struct mem_cgroup *memcg; + unsigned int memcg_size; + + memcg_size = struct_size(memcg, nodeinfo, nr_node_ids); + memcg_cachep = kmem_cache_create("mem_cgroup", memcg_size, 0, + SLAB_PANIC | SLAB_HWCACHE_ALIGN, NULL); + + memcg_pn_cachep = KMEM_CACHE(mem_cgroup_per_node, + SLAB_PANIC | SLAB_HWCACHE_ALIGN); +} + /* * subsys_initcall() for memory controller. * @@ -5048,7 +5064,6 @@ __setup("cgroup.memory=", cgroup_memory); static int __init mem_cgroup_init(void) { int cpu; - unsigned int memcg_size; /* * Currently s32 type (can refer to struct batched_lruvec_stat) is @@ -5065,13 +5080,6 @@ 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); - - memcg_pn_cachep = KMEM_CACHE(mem_cgroup_per_node, - SLAB_PANIC | SLAB_HWCACHE_ALIGN); - return 0; } subsys_initcall(mem_cgroup_init); -- 2.48.1