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 EFACFC28B28 for ; Wed, 12 Mar 2025 08:53:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2BC51280002; Wed, 12 Mar 2025 04:53:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 26EA2280001; Wed, 12 Mar 2025 04:53:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0C244280002; Wed, 12 Mar 2025 04:53:54 -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 D95BD280001 for ; Wed, 12 Mar 2025 04:53:53 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id B5B92C0D3F for ; Wed, 12 Mar 2025 08:53:54 +0000 (UTC) X-FDA: 83212286388.09.953E482 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf25.hostedemail.com (Postfix) with ESMTP id 4392AA0007 for ; Wed, 12 Mar 2025 08:53:51 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=FRjnYiMH; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=nLKnLU9t; spf=pass (imf25.hostedemail.com: domain of harry.yoo@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=harry.yoo@oracle.com; dmarc=pass (policy=reject) header.from=oracle.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=1741769631; 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=nmIiAyiQjXY5lJGG3tdtWx2I4DduyvmTh0JV6cgA02U=; b=PlBg0Aa75Q2r4XGjDz0K1+QZYcHhucKDj7UNiwOzAPna3yiMkAs3GG6y4NJaS/SjgZ+Tkg G9V6YRuJNtdigzMYNLaKoqaIfZOSx/Zf9NWIK/NF3pGjHdyr2DthjZyBKnGZZyTs26MD1x vHjtZ2owjjIQnencXjKvOBcjbljDjlc= ARC-Authentication-Results: i=2; imf25.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=FRjnYiMH; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=nLKnLU9t; spf=pass (imf25.hostedemail.com: domain of harry.yoo@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=harry.yoo@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1741769631; a=rsa-sha256; cv=pass; b=TEC81b5o1C3aHBEurjQXNu/WmI3554scEATBs1HIZXRIZfswqMJuwdlvkBJjv392cF0pJd wM018lptnBTAmrOkdMlbRDE7JJG+bS7v22A4rsoG2viLuCCzFdn5QBDow7DErgRgGCJr0m 9c7rz6NFRYyZ0G/Mg5IfrIc0DlyNU14= Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 52C1fxvx025269; Wed, 12 Mar 2025 08:53:44 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=corp-2023-11-20; bh=nmIiAyiQjXY5lJGG3t dtWx2I4DduyvmTh0JV6cgA02U=; b=FRjnYiMHR23kETXklc+NlKzIVPuAvIwwjb f8/sdHvtU6OUM1q4jXz6yDacZAUr1u2Inl0rOuNdFXIAMtC6GTsuYavaJuPh34KT J0X/QzUFu52ACLoBvCHX2qw2dCdiRiVQo7+TW8C0oFtIqkAi/Las45dq6Kw0+Vr5 qe1e+okt1jNIma7ALy17QZ6TkYIPiO7SoWNqzAmQLGVJ/6FwswgH2Ds9kZI7+xC+ eefWV1kfcVwSwaSgAckd4Wwc9hz9WYDi1irBqt7x1a++yKKn119s5LZrzDNXqRjR F9QZCSw0G/q5t5poBC2q2cwiBclkha6a5AD7TkJIEBEz3YCOcw1w== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 45au4ds6xv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 12 Mar 2025 08:53:44 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 52C8KL8R012219; Wed, 12 Mar 2025 08:53:43 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2169.outbound.protection.outlook.com [104.47.58.169]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 45atn107u4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 12 Mar 2025 08:53:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mfIgjKLizTHcQf/b67zWoHZkb0cBAGIHduk8LcTcnwtGuGXm8hjsFyvWgR6OUcK+8HCNUOGQ6gdhlEaFiVp1I0RUlogfh+ICLKk0DlzYAQt29ZRS+lasdhGZcxXyqsz+cWtlYvuMWUe7J5UO4C/wk63XtP83gImgwEzjGk0t6thxA/Jt078u0+9Od5iJw5FAyWIVcuBvN+Gwkplc5Ky1Qf/M/XXSfLBzE+d5sCZwlGMb2Q3VO6qbT8dj4skqCVl7FE/VG1stGNbyHFovbffDVraGR4LUFSMQdsSJYxigK2h8mvr1l5y7iJ2HgqYiUOHFO1rxKfyEBivhauS6/w1X7Q== 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=nmIiAyiQjXY5lJGG3tdtWx2I4DduyvmTh0JV6cgA02U=; b=OYqPm7C4DvlR2N62aLLbRjkJ6zZaXM7K7VGjrRypjNhWXR7Wb3FbbjKcGA8XjJW3q1F3cDnY0Z9T1lEU/IEPPohkRSsPbC/w1LbRn7N2A2pkzvgslHOalqHdF9JUdaR9mDf/lRClNbPi7QwSTkqylw93kXNqQAnmC1+1vKXNGAPK3mn/k1ASL9TU9P7gwX1SIIdlaHKxZzW1lR6WiNPVcZq4Rdp50Qh1tZuE6mPYfOlVZkTUceQmxM8vNVsmV70ewHCReqqX/3PjGd1gn2NC2EEk/Cca+z2VqgyP/W8dLgdY5EEcz5KOsIAi1KQeeI4z42oKWQXGaekJXUR0Rs5vew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nmIiAyiQjXY5lJGG3tdtWx2I4DduyvmTh0JV6cgA02U=; b=nLKnLU9tXWP9fJ7uLATXfVoh8ACDZBXsTJ+G5DeGBZs0Zy9LnrG5lwr4Or4m77+58hGMiTLVg9rFnrq8UKU/H7r4TUtxHKnBrbWphFh6pelGfgmt7Qf+cober0T0+rCe8hcwCcdQrCNOlhIkcaXVh3I4x79qmVXX1EbjIG510KE= Received: from CH3PR10MB7329.namprd10.prod.outlook.com (2603:10b6:610:12c::16) by DS0PR10MB6175.namprd10.prod.outlook.com (2603:10b6:8:c1::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Wed, 12 Mar 2025 08:53:41 +0000 Received: from CH3PR10MB7329.namprd10.prod.outlook.com ([fe80::f238:6143:104c:da23]) by CH3PR10MB7329.namprd10.prod.outlook.com ([fe80::f238:6143:104c:da23%6]) with mapi id 15.20.8511.026; Wed, 12 Mar 2025 08:53:41 +0000 Date: Wed, 12 Mar 2025 17:53:35 +0900 From: Harry Yoo To: Matthew Wilcox Cc: linux-mm@kvack.org Subject: Sharing the (failed) experimental results of the idea "Keeping compound pages as compound pages in the PCP" Message-ID: References: Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: SE2P216CA0174.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2ca::14) To CH3PR10MB7329.namprd10.prod.outlook.com (2603:10b6:610:12c::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR10MB7329:EE_|DS0PR10MB6175:EE_ X-MS-Office365-Filtering-Correlation-Id: b552c3f8-0ccd-4e68-ae7c-08dd6143630f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?jooDrbvhZPl9MxmJXh6TMXNJ3eDkQ84FHMFQJqgkh88pdJgyaxzj/pG6rCYl?= =?us-ascii?Q?lNyjI2YEyeC3TjJkmS58W5DXjq41g/ooUaTehyRV7nJpF5jkKkihOScAyTTB?= =?us-ascii?Q?OvbEQjjcNgoYaTtjvmoNsdhw+mIvkx09FKaQ19VN89rxsRyIKXIX8E+k9E/0?= =?us-ascii?Q?JvAIe5k3qOxYsesY4V5aR9rCujspi80Z4ka3MikFY38ZiHHnT4iiJCO6iRx7?= =?us-ascii?Q?D6t/zi9pKSUuJQMNGTjGhJLbv3BFSwrZF/cc+nFw32jJxpbNmFpW6e4i7cTx?= =?us-ascii?Q?9M16Enh/bYUCddQOUyJ0G9PtdPefJNkUMqZ1euwIOn6F831TU+Zo3gKbwDYk?= =?us-ascii?Q?6pqHUiB6sieU9eSLYqsw3jc29/m/+SeXs45NWKf00XVhWBu4zieyOZhH+MkM?= =?us-ascii?Q?hT8ylvRhEvGKW9tEIJ6/FB5W4kKKON/OqYeWVTJu4wBIN+q/4Gi5CvpYxF18?= =?us-ascii?Q?SCzr/SA331neG05uvYSDFu39U8JyGbcqcrI/Cz5n22+mkGbRAmcUgz0cw9hE?= =?us-ascii?Q?tV1H+pdo7L4P0wddEL3PdmnvYGfKNwFftuqm/VlZ7RDTJarJvFKGv/k6cfPU?= =?us-ascii?Q?huqxr3Nyv0/lq3qPIAFbzxsegOSK5/T/Jyg1nBIVMrDAcDgB8yf1SEhl3CNh?= =?us-ascii?Q?xjPWsZKKVkU302vg45fE2H1NPDp8ccL/jMeJ88Pzw/A4tQqpEIK7AUMy6gbJ?= =?us-ascii?Q?oVAoVWeXlbJuMyIRybz5LvD3Eb1urVe331U5piDChl4x5UEbiLeRGxNl+jbg?= =?us-ascii?Q?/xYHr4FJXtrA9jABgrJwkWSUG7ppc8RZOG2Bo3+2pl86JY8i6/lpKXmgenv9?= =?us-ascii?Q?FN+h4WBQsWhUuqS75IXvwNcjCswvaRRFdmGEOy4URgp137ENy0MiYX92CcGd?= =?us-ascii?Q?tJUhFugHhp+VRk94H1rvKMmT1x7pVwkq5JVCc5nJUj0Bb08Rxktx7P95QnOn?= =?us-ascii?Q?+TrlbMNmHYuCfUsqsFMrU/97mJhWjh4PGZ5p2GjpvPZbva5GmpDBCv1sEvht?= =?us-ascii?Q?HYoMsWKJwFYVAOSTXnQtUJ/le0Nk6FeUn4mh473V9+8zxBR09gby5ByTTuWT?= =?us-ascii?Q?g7C+tDrMFPFGPYZRAnKHjEu3XDMB1XoipzsUUCvCAedQMc1sEIzbrhBf4I63?= =?us-ascii?Q?DASFGElpyz2UDnXFZjngjKP8/VSTzECey9zVOTvcM/30QF+iqZu2yVEQOdBI?= =?us-ascii?Q?1nb8LjK46zpiCSE5GfByBu+zjwY56kNSSTVjFLyaBpZz4e3GXqDJS3uRgB0G?= =?us-ascii?Q?98bcpHjLEH5Jga7niIFzabN6Wk9Eoz7wWXtvLxTCwayPmb83+GmqIVzDbimC?= =?us-ascii?Q?Q1Afv7yrzRxQwOO3/07VMUAobNwdVzeGxsfsu+L/zS3PGdgFj9uy6GqImJat?= =?us-ascii?Q?SrSOD1M1ivruvsaEDocts9KXFIHZ?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR10MB7329.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?mX2Sxrg3E3OHRBTXTahgXfbD74CVpJw+nWRF5PUrE4AYoMgx9Niay3lWmBJK?= =?us-ascii?Q?unN+iopbkCZfouXJuPzR0xneN9fHocp73WIH32oWMqB0nz9mqbnxB7yZNr+3?= =?us-ascii?Q?6p3PU4sI5+jiIv6i6/A9VJjvYTFA3VDTWjdm3O0H7uSorBkQEjBy94A+9bKS?= =?us-ascii?Q?nYkIIxLNZnWuK/KzezoNUi4Y7unw9GQq++OkICtf9PNuavIzPlmkWfanJEVK?= =?us-ascii?Q?PBoiwyI7Nor3Ry2OtREGFPtt9O7BKqxehrqsabBgZb7C74crlpp3BQcb1jKT?= =?us-ascii?Q?3aZUPlbqU100xw0//Pa/px1NZTG0R0NY3uGFh+90LJgVYIqeBAGUVt6NruIm?= =?us-ascii?Q?foZ66Ov5VosngGRlZqxO2ailWqbpThAHDeQrCKnxjLXO2H7D4xUEHXOhBx4w?= =?us-ascii?Q?KU9EY15rItOet+x/NZHG/mw1JrfF2cgCQCu1ITLzKftLA4br27s3XXkedDQb?= =?us-ascii?Q?TA2qim9k4z3vEm/uTCMBGAhpnMZJ3CT+N6emumZI2oapNRlTjJTQL0AuXAeu?= =?us-ascii?Q?3VtnTw2whYDkIukLEKx8KUofALH1VysURuGbtFsRh0Ci0LxvZg1VqjhOL21R?= =?us-ascii?Q?hRFOTX4F+uVGBCpMCbBhmd/nfGCcQOL2KBIQ9w+N3pUqynlYtgOzv4571CXM?= =?us-ascii?Q?RXtqO/JDeSUsJQsJVybKUTAKh8+wvyXJQPKcvsSfNTIz4ntV7KU2cmQfYhll?= =?us-ascii?Q?9jLfh7AADIUDxp6OOqoq72I3lzDhvL61IxBuo01mgdOa0JwCm6jC8Zg6tiIk?= =?us-ascii?Q?gIgOBLbG5JYyt0inL2pNz2xmmbzgQ5xfqoqM766nTeZmGnNN2YPFMwX3OAoh?= =?us-ascii?Q?SSjst18tiOmofwEGqgCM2Uj+lhK0ZowH0uFD0VtuCbTcoVUHLeWsSX6VnXDw?= =?us-ascii?Q?hgsYN7Ba+Miobi6DWdDh0fSRyCI6plCVKJovN1YNFhz+/5SL6H7NiDMWoueH?= =?us-ascii?Q?oj/FZ43OfepZD7UdYThZe/BeWbwindRyB1iQ5Lb8WuJ5lvx3ImfVWokUghqZ?= =?us-ascii?Q?vRP/83PyhiVUGs7y3UnCDOegjpYflkQT0igtgwbx+ud3aNkhv2j8DjCi2AkA?= =?us-ascii?Q?ONEr+bV0d3cQn5mBpAINn1zejX3pQGc2IHf99Ynds9VqWCYoTt+j/5dwY5cZ?= =?us-ascii?Q?DGV5uRHI49+pp0yvXmme1391AWPW9WjAr44rff6wtdeXbfCixYJsTU5yzeJi?= =?us-ascii?Q?l3caYq7TprtpHLqthk/gvKemkeCh+XpJwDrARnjD66Q6usFPdEnSNj+QEXpr?= =?us-ascii?Q?6REEPDYUl14pNmqrjgaQDK0Uu++TfapQQs4ej79g32l0QYiU7NIqb4Y65SZf?= =?us-ascii?Q?qDccefKqazNtotCkOkVbO5FXPq4sHSker5wk04b3GLerj5chTE5Fb4ByC/yB?= =?us-ascii?Q?O6504qi+4KVKi6Kow/QIR9S9b7VS79P6867p5NVJvd2YAffS2lymj5gH6wxS?= =?us-ascii?Q?5gEEAhR7xgcsFYmhSgpAQIfyoSJ/n/Y3jkFxu04mnq4w+x5xdnlfZobNgvkh?= =?us-ascii?Q?IrjBkx7V6neCYRUIrjvCWFenzB3aEvl/Sih3/X7wgyOxXJBKue+0Fc6qttiy?= =?us-ascii?Q?s3ABHQMAIYAN5aXbGHxTUDtFZ9xK6QZdUD8hrzHX?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: nNKDlMIoCCMIjcLOxFAo7ShA2Msr1LAr7ACfLtelZqIO12O5pIciuqo0lNgqw0a90GBUK8lL6rehSBmEQJwKHgKWXGBNS9yCFiz6OrttuB6MuKhi/wsDq7Z6EjON/xBaKFhLaweRyvum6Uv1pLIGbr+OUyeG1jikpFJh8d2tYGKUpWeqeM/NImdmklK6+eA/L2CbmM75MfS8L7loJGgtdwgQIH8N+wWUaDmhHC9yRbaTkTLLZuur3ke5Ng21lHbKcY2RN/oqAaalg3P9wi9hQX/PLHQIqBQ5hnoDHulZ/0PMc4v5L2Grjt0cF9E+FBcoGK8YxW8nTAv5xF2xE56GojbSzP4oStMggU03xHBltj1u6uSTkxII0uNJ2gcwIFU2msyeyMFzB429FOzid2IQ/O7zleRV/Wa9q15kCu3tjVniZzE3xyRyKEv1PAIQ8fOMrGgKGIxPkqJGTGOEVssFpEACQtzAmbUOSjpOqpwVm1lWrBL8qgOlb0vw6Iql6Ic4gxDy7WpIBVWCwwl5OztnP6w7rZ77sse62xTtMhB5MytAu21SfGCUxdA/3dhYBoReQCYn21XnPmgbTw6aEkbZFyQtfzemFmMcNV1J+2seids= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b552c3f8-0ccd-4e68-ae7c-08dd6143630f X-MS-Exchange-CrossTenant-AuthSource: CH3PR10MB7329.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2025 08:53:41.1167 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: H8TWeQT5L7b+5gNUuJ16AWIVbkNT9pzL1+1D67+Gn0v4ioDrRVpT7txm2fTRTnkOTDVjMoAglL85uKTCue9VBQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB6175 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1093,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-03-12_03,2025-03-11_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2502280000 definitions=main-2503120059 X-Proofpoint-GUID: 6WyGsubJsTW_O3OOTXMro8oxyi_Ksrp0 X-Proofpoint-ORIG-GUID: 6WyGsubJsTW_O3OOTXMro8oxyi_Ksrp0 X-Rspam-User: X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 4392AA0007 X-Stat-Signature: cpcrpu8dgf67oybjqb7ctynyjc61obci X-HE-Tag: 1741769631-823516 X-HE-Meta: U2FsdGVkX191Jy2Zkx7fLhJe8cMNnugsynfRUkMbOlTqs8HB6jXQKqoOFYOLfzCdhw2nmVQMKLQATtUtc3P8HGvwTtoKPsJ0i6sASzDbetebgrtkHhKj6D5TlF9GeRtIxqnoRwAMSvAnEYB1VoXRztbsXWZ25avzVQg2NzgSFYAI/zsSH78VTTZvrVCbqjA/ZECwJMF1hb3rIgDVKm0Cg1ZDtN8bor6n/Xh9F3s4f8gQYKMqk0MKRkwNZsgCXQuohfrG2n5MViCuvvn3UrZ/9W3Vl1WW+zzlVBATkS2PyAnmsip4+fhMNwISxUfDrE0HpmZvVuAz5nsEH3k+FJ2fBpAYJTiGj2YtS0dHpNjV0HziaYFs6Or3nETSsaHcGfzOyRjr4qsMnAdECUH7wXpc8s8Re72zUpcPb9yQim502uvK5kYEXPDw98XSaGTaI1qZ1IzZHGXWhZVi9/LyD8wJ0wXTN5EEef8qTmiiCL5Xf5KWp8MOyAbW6KZC+OvDL4N1pUbTflRvqdmqCDy3aYXyjQKpwarrNOv8WZ05XBMgJTimPulGE3khaEv2yl+EfWjGuFPWZc3hezl04qkiiKTxMvzytTUUyFCY7vVcXr/5Cd6rJF62ZB/el3KCSQzNA2mNf+YTTBiQ3Gjov7lyb6KoF91UnnflCrFX4PUjcBwHgj3OPpp5AJPstvx2V7BMb8fVdTrsWlwpt/Swh3ssEr863Xtq7gcW7DSAdQK1UNpD3oJfVyf51GEW+yKJX1gUiI6ncdCH/BmE52QgZ+w/NKdcSZqFdVfnQYLgpKSGpfRhYAzBmi35AbNe7Kqvh54I80K9+Y/rAQvVgBUXT3eOcDHg/qtXGgK/XLh4u/sCNYZHXfkUyUW/mmeATXpW1T33uQhvvl/BOMGhklrDpFtGj7iFH/8ft8Klbmc6kYVNC1G8/rqQ5bk2DddIxZBFXAUH+nRAc2nJCpeqRiD4uIP2j23 2uRybyhA IIkC9V/gOY4q8uohFBl/ONuzVcTbUE2tcAGfz3j70VlFnrYq2+Gx4q4D879mNM90SwL/M7N40nyOGXZRgPLpMUdypqCj7hXhe7CiK4tz9Lv/r0nlZfiYyDENBAeFSjoYhWTaKQvfCaBzJ0Z3TR/yyqrfjQLSu/u1QK/1iP7vh3Mwzqa6L0YJ3m6tjaBhqI7RNEzfC36vPOPLCN9J6MXwH0GhCcCOBnM9ksTBBn6URqLLmMkDPrY2Hpo7D7rLlRyzsX9Kb8X/P05gJQnXGwrwDNYqDbky7DIU/d8yv5R1efPEzEaFIDdrTL7WAiHdTJ9JHDWlupjZgJWlYMtJg82EAEa0TWfjmB0v8bsLP2tay/jy4n3a1oQZFWNHgjC8wsVGUIKdCBZeAG0254Ux6vyUY7WGgGQnWDqcfeOcE+a3xvfH+mSTsXWvaVGmU8IcZoVPhkGCo/RZ9d5YFCB0ecRPN7W+vfetxxuhb7rHfjweVPIJEwOeLum+CWnP6za5mbamZtuFEUdISdfAl8P6EozCOvNZQDv7YT3iBgZKAdkUHivXWDEQtNrCS2EyUsGCyAUrnrSWkzbpwrqbYApaGo/Duqvy5/voPe1essfn4glokoKEJgBnGnrvjtIec7YqXGRke737+iBeNNB4CamZWOiztqHh3ju6nxMi6jJDJ8mxg5W0mKoeTe6y2IKnPTQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.056592, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: was: (Project: Improving the PCP allocator) On Mon, Jan 22, 2024 at 04:01:34PM +0000, Matthew Wilcox wrote: > As I mentioned here [1], I have Thoughts on how the PCP allocator > works in a memdesc world. Unlike my earlier Thoughts on the buddy > allocator [2], we can actually make progress towards this one (and > see substantial performance improvement, I believe). So it's ripe for > someone to pick up. > > == With memdescs == > > When we have memdescs, allocating a folio from the buddy is a two step > process. First we allocate the struct folio from slab, then we ask the > buddy allocator for 2^n pages, each of which gets its memdesc set to > point to this folio. It'll be similar for other memory descriptors, > but let's keep it simple and just talk about folios for now. > > Usually when we free folios, it's due to memory pressure (yes, we'll free > memory due to truncating a file or processes exiting and freeing their > anonymous memory, but that's secondary). That means we're likely to want > to allocate a folio again soon. Given that, returning the struct folio > to the slab allocator seems like a waste of time. The PCP allocator > can hold onto the struct folio as well as the underlying memory and > then just hand it back to the next caller of folio_alloc. This also > saves us from having to invent a 'struct pcpdesc' and swap the memdesc > pointer from the folio to the pcpdesc. > > This implies that we no longer have a single pcp allocator for all types > of memory; rather we have one for each memdesc type. I think that's > going to be OK, but it might introduce some problems. > > == Before memdescs == > > Today we take all comers on the PCP list. __free_pages() calls > free_the_page() calls free_unref_page() calls free_unref_page_prepare() > calls free_pages_prepare() which undoes all the PageCompound work. > > Most multi-page allocations are compound. Slab, file, anon; it's all > compound. I propose that we _only_ keep compound memory on the PCP list. > Freeing non-compound multi-page memory can either convert it into compound > pages before being placed on the PCP list or just hand the memory back > to the buddy allocator. Non-compound multi-page allocations can either > go straight to buddy or grab from the PCP list and undo the compound > nature of the pages. > > I think this could be a huge saving. Consider allocating an order-9 PMD > sized THP. Today we initialise compound_head in each of the 511 tail > pages. Since a page is 64 bytes, we touch 32kB of memory! That's 2/3 of > my CPU's L1 D$, so it's just pushed out a good chunk of my working set. > And it's all dirty, so it has to get written back. I've been exploring the idea of keeping compound pages as compound pages while they reside in PCP lists. My experimental results so far suggest that reducing the overhead of destroying and preparing compound pages does not have a substantial impact on pft and kernbench. For the record, let me share what I did and the results I obtained. # Implementation My toy implementation is here: https://gitlab.com/hyeyoo/linux/-/tree/pcp-keep-compound In this implementation, I modified free_pages_prepare() to skip destroying compound pages when trying to free to the PCP. In case the kernel failed to acquire the PCP lock, then it destroys it and frees to the buddy. Because order>0 pages in the PCP are compound pages, rmqueue() does not prepare compound pages if they are already compound pages. rmqueue_bulk() prepares compound pages when grabbing some pages from the buddy and free_pcppages_bulk() destroys compound pages before giving it back to the buddy. Non-compound multi-page allocations simply bypass the PCP. # Evaluation My experiments are done on my Ryzen 5900X (12core, 24threads) box with 128GiB of DDR4-3200MHz memory. In the summary below, '2MB-32kB-16kB' means the kernel first tries to allocate 2MB, and then falls back to 32kB/16kB. [PFT, 2MB-32kB-16kB] # timings Amean system-1 1.51 ( 0.00%) 1.50 ( 0.20%) Amean system-3 4.20 ( 0.00%) 4.19 ( 0.39%) Amean system-5 7.23 ( 0.00%) 7.20 ( 0.48%) Amean system-7 8.91 ( 0.00%) 8.97 ( -0.67%) Amean system-12 17.80 ( 0.00%) 17.75 ( 0.25%) Amean system-18 26.26 ( 0.00%) 26.14 ( 0.47%) Amean system-24 34.88 ( 0.00%) 34.97 ( -0.28%) Amean elapsed-1 1.55 ( 0.00%) 1.55 ( -0.00%) Amean elapsed-3 1.42 ( 0.00%) 1.42 ( 0.23%) Amean elapsed-5 1.48 ( 0.00%) 1.48 ( 0.11%) Amean elapsed-7 1.47 ( 0.00%) 1.47 ( -0.11%) Amean elapsed-12 1.50 ( 0.00%) 1.49 ( 0.18%) Amean elapsed-18 1.53 ( 0.00%) 1.53 ( 0.15%) Amean elapsed-24 1.56 ( 0.00%) 1.56 ( 0.04%) # faults Hmean faults/cpu-1 4268815.8976 ( 0.00%) 4270575.7783 ( 0.04%) Hmean faults/cpu-3 1547723.5433 ( 0.00%) 1551782.9058 ( 0.26%) Hmean faults/cpu-5 895050.1683 ( 0.00%) 894949.2879 ( -0.01%) Hmean faults/cpu-7 726379.5638 ( 0.00%) 719439.1475 ( -0.96%) Hmean faults/cpu-12 368548.1793 ( 0.00%) 369313.2284 ( 0.21%) Hmean faults/cpu-18 246883.6901 ( 0.00%) 248085.6269 ( 0.49%) Hmean faults/cpu-24 182289.8542 ( 0.00%) 182349.3383 ( 0.03%) Hmean faults/sec-1 4263408.8848 ( 0.00%) 4266020.8111 ( 0.06%) Hmean faults/sec-3 4631463.5864 ( 0.00%) 4642967.3237 ( 0.25%) Hmean faults/sec-5 4440309.3622 ( 0.00%) 4445610.5062 ( 0.12%) Hmean faults/sec-7 4482600.6360 ( 0.00%) 4477462.5227 ( -0.11%) Hmean faults/sec-12 4402147.6818 ( 0.00%) 4410717.5042 ( 0.19%) Hmean faults/sec-18 4301172.0933 ( 0.00%) 4308668.3804 ( 0.17%) Hmean faults/sec-24 4234656.1409 ( 0.00%) 4237997.7612 ( 0.08%) [PFT, 32kB-16kB] # timings Amean system-1 2.34 ( 0.00%) 2.38 ( -1.93%) Amean system-3 4.14 ( 0.00%) 4.15 ( -0.10%) Amean system-5 7.11 ( 0.00%) 7.10 ( 0.16%) Amean system-7 9.32 ( 0.00%) 9.28 ( 0.42%) Amean system-12 17.92 ( 0.00%) 17.96 ( -0.22%) Amean system-18 25.86 ( 0.00%) 25.62 ( 0.93%) Amean system-24 35.67 ( 0.00%) 35.66 ( 0.03%) Amean elapsed-1 2.47 ( 0.00%) 2.51 * -1.95%* Amean elapsed-3 1.42 ( 0.00%) 1.42 ( -0.07%) Amean elapsed-5 1.46 ( 0.00%) 1.45 ( 0.32%) Amean elapsed-7 1.47 ( 0.00%) 1.46 ( 0.30%) Amean elapsed-12 1.51 ( 0.00%) 1.51 ( -0.31%) Amean elapsed-18 1.53 ( 0.00%) 1.52 ( 0.22%) Amean elapsed-24 1.52 ( 0.00%) 1.52 ( 0.09%) # faults Hmean faults/cpu-1 2674791.9210 ( 0.00%) 2622289.9694 * -1.96%* Hmean faults/cpu-3 1548744.0561 ( 0.00%) 1547049.2525 ( -0.11%) Hmean faults/cpu-5 909932.0813 ( 0.00%) 911274.4409 ( 0.15%) Hmean faults/cpu-7 697042.1240 ( 0.00%) 700115.5680 ( 0.44%) Hmean faults/cpu-12 365314.7268 ( 0.00%) 364452.9596 ( -0.24%) Hmean faults/cpu-18 251711.1949 ( 0.00%) 253133.5633 ( 0.57%) Hmean faults/cpu-24 183212.0204 ( 0.00%) 183350.4502 ( 0.08%) Hmean faults/sec-1 2673435.8060 ( 0.00%) 2621259.7412 * -1.95%* Hmean faults/sec-3 4637478.9272 ( 0.00%) 4634486.4260 ( -0.06%) Hmean faults/sec-5 4531908.1729 ( 0.00%) 4541788.9414 ( 0.22%) Hmean faults/sec-7 4482779.5699 ( 0.00%) 4499528.9948 ( 0.37%) Hmean faults/sec-12 4365201.3350 ( 0.00%) 4353874.4404 ( -0.26%) Hmean faults/sec-18 4314991.0014 ( 0.00%) 4321977.0563 ( 0.16%) Hmean faults/sec-24 4344249.9657 ( 0.00%) 4345263.1455 ( 0.02%) [PFT, 16kB] # timings Amean system-1 3.13 ( 0.00%) 3.22 * -2.84%* Amean system-3 4.31 ( 0.00%) 4.38 ( -1.70%) Amean system-5 6.93 ( 0.00%) 6.95 ( -0.21%) Amean system-7 9.40 ( 0.00%) 9.47 ( -0.66%) Amean system-12 17.72 ( 0.00%) 17.75 ( -0.15%) Amean system-18 26.19 ( 0.00%) 26.12 ( 0.24%) Amean system-24 35.41 ( 0.00%) 35.31 ( 0.29%) Amean elapsed-1 3.34 ( 0.00%) 3.43 * -2.79%* Amean elapsed-3 1.50 ( 0.00%) 1.52 * -1.67%* Amean elapsed-5 1.44 ( 0.00%) 1.44 ( -0.09%) Amean elapsed-7 1.46 ( 0.00%) 1.46 ( -0.43%) Amean elapsed-12 1.50 ( 0.00%) 1.50 ( -0.04%) Amean elapsed-18 1.50 ( 0.00%) 1.49 ( 0.18%) Amean elapsed-24 1.51 ( 0.00%) 1.50 ( 0.58%) # faults Hmean faults/cpu-1 1975802.9271 ( 0.00%) 1921547.2378 * -2.75%* Hmean faults/cpu-3 1468850.1816 ( 0.00%) 1444987.8129 * -1.62%* Hmean faults/cpu-5 921763.7641 ( 0.00%) 920183.2144 ( -0.17%) Hmean faults/cpu-7 686678.6801 ( 0.00%) 681824.6507 ( -0.71%) Hmean faults/cpu-12 367972.3092 ( 0.00%) 367485.9867 ( -0.13%) Hmean faults/cpu-18 248991.2074 ( 0.00%) 249470.5429 ( 0.19%) Hmean faults/cpu-24 184426.2136 ( 0.00%) 184968.3682 ( 0.29%) Hmean faults/sec-1 1975110.1317 ( 0.00%) 1920789.4502 * -2.75%* Hmean faults/sec-3 4400629.2802 ( 0.00%) 4327578.7473 * -1.66%* Hmean faults/sec-5 4594228.5709 ( 0.00%) 4589647.3446 ( -0.10%) Hmean faults/sec-7 4524451.1451 ( 0.00%) 4502414.9629 ( -0.49%) Hmean faults/sec-12 4391814.1854 ( 0.00%) 4392709.6380 ( 0.02%) Hmean faults/sec-18 4406851.3807 ( 0.00%) 4409517.3005 ( 0.06%) Hmean faults/sec-24 4376471.9465 ( 0.00%) 4395938.4025 ( 0.44%) [kernbench, 2MB-32kB-16kB THP] Amean user-24 16236.12 ( 0.00%) 16402.41 ( -1.02%) Amean syst-24 1289.28 ( 0.00%) 1329.39 * -3.11%* Amean elsp-24 763.75 ( 0.00%) 775.03 ( -1.48%) [kernbench, 32kB-16kB THP] Amean user-24 16334.94 ( 0.00%) 16314.30 ( 0.13%) Amean syst-24 1565.50 ( 0.00%) 1609.74 * -2.83%* Amean elsp-24 779.84 ( 0.00%) 780.55 ( -0.09%) [kernbench, 16kB] Amean user-24 16205.47 ( 0.00%) 16282.73 * -0.48%* Amean syst-24 1784.03 ( 0.00%) 1837.13 * -2.98%* Amean elsp-24 787.37 ( 0.00%) 791.00 * -0.46%* I thought the fact that I made zone->lock in free_pcppages_bulk() a little bit finer-grained in the implementation had a negative impact, so I modified it to be coarse-grained and experimented again, but it was still not a clear win on kernbench and pft. So... yeah. The results for this idea are not that encouraging. Based on the results, my theories are: 1) The overhead of preparing compound pages is too small to show measurable difference (the percentage of prep_compound_page() profiles in the total profile is measured as <0.5% on pft). 2) At the time the kernel prepares compound pages, a large chunk of the cpu cache is already dirtied (e.g., when allocating 2MB anon THP, the kernel simply touches the whole 2MB of memory), thus dirtying 1.56% more of cache lines does not have a huge impact on performance. -- Cheers, Harry