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 7959BC0015E for ; Tue, 1 Aug 2023 19:48:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C1AD22800F3; Tue, 1 Aug 2023 15:48:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BCB572800C8; Tue, 1 Aug 2023 15:48:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A44CD2800F3; Tue, 1 Aug 2023 15:48:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 8F35A2800C8 for ; Tue, 1 Aug 2023 15:48:53 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 6068712064B for ; Tue, 1 Aug 2023 19:48:53 +0000 (UTC) X-FDA: 81076573746.21.F1F5902 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf15.hostedemail.com (Postfix) with ESMTP id E5EECA0006 for ; Tue, 1 Aug 2023 19:48:49 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-03-30 header.b=bgeXOCvN; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=qDb+U2WD; spf=pass (imf15.hostedemail.com: domain of liam.howlett@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=liam.howlett@oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=none) header.from=oracle.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690919330; 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: references:dkim-signature; bh=f8sm6pe3Ll8IBrbfGPUkhPLEv9a4WJrvUO+0jx3oT7c=; b=4+HYAAWvFurEOsxNhv670LpEGB/Z8pby7T/em/vWEFCL4rJHpm86zFUkC/dKOilv5UdRyX 82HEX3e7Egl+YWxuf2DDSFtjLqMTTFh/zOcOlrP+cpUN1yIC5C1b9PlgjfRtuwx+RjToY1 BJB9OzSwjAJtsorD7B51Mhal2Bu0bOA= ARC-Authentication-Results: i=2; imf15.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-03-30 header.b=bgeXOCvN; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=qDb+U2WD; spf=pass (imf15.hostedemail.com: domain of liam.howlett@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=liam.howlett@oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=none) header.from=oracle.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1690919330; a=rsa-sha256; cv=pass; b=6MvIfNpZOEXOfoDFZsNvCmIGcmvATQeuye4pFjZXMO8EHMlATXkEAfheydSKpqbMpglTjm KF0rDVvbxKoBf3br6ERZ9gS8qozlVVhfY7jNGtPb4FyReQplSayAqfsA7LLU58ALmwWA0S im5buSQzgVY2dsWbsFyadfuqhKQRLbM= Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 371IYHtx027965; Tue, 1 Aug 2023 19:48:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : content-type : mime-version; s=corp-2023-03-30; bh=f8sm6pe3Ll8IBrbfGPUkhPLEv9a4WJrvUO+0jx3oT7c=; b=bgeXOCvNF+oxz1N30AiwqgQpOuJgonVPqiieRRtP2NG70ER4Ix7v3wrk+OdX+sbzhWDd ih6MTWjS0uOrz/DIy/xXWNgnqKlf2u/aXFnWCUa9zDXB5dqbJQv3dtdOTO2zAoGR47Rx 3reXTz6k7s4wUUP7b4aKklsaHCh9qDsabNtcoK5oxJOXfm65H2fYvc7a/ZHRaO3Zkh6y eGmDXOUcfCNbltAeZUWp21zB0LLw+sbjzHsLgGlrVzADSPV1cnyctVQ/lvBKNCbTgfIO MnQvRMG3yri6RMc1Zu/3RfaFUxzjH2cPQh7pqGT90dRpCoGx4qN6onKIk9Q06CWyYQ9a wA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s4tnbdrjf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 01 Aug 2023 19:48:27 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 371ISma1008653; Tue, 1 Aug 2023 19:48:25 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2168.outbound.protection.outlook.com [104.47.57.168]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3s4s7ddwvq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 01 Aug 2023 19:48:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Zszw0/ZmUx4C7yKlsksy/ng/utONdUpka8gHhR04tlrUfRtsbbGWx9GgBpkxPb86Qqe3CiRNI0DeWF+IRdOLYgIX1GFa8m8DetmnXfnNS8dcaSv3Nuju45wfpRo9tCaRh4BqN2OkIiaGILl/7Jh4lY08aG0gHI2YS2wy0i+AcsKVpy/rWo9g/uI5DANuPULuabai5R43e60u+vdFI11ggVXWhVJ3Gm5KMz65YkacDyc746ChdDWnrKgi7He+Gh8j7eABgzYCDyZqRCV4u8ZJm6j0jPJOs6YelzpWUemCkY/s3+6ZW2TdfWmOfrsU9PLMdLKWGpvwzkDbV818iX6FGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=f8sm6pe3Ll8IBrbfGPUkhPLEv9a4WJrvUO+0jx3oT7c=; b=eyfGdHPlpzuari9fuk9F1cxur/DoowC6v4s5RQtqB+aI7Fi2RfdO79gziV8K/bI0xZavv3mdtPhklJjvrMOkQhEMnAJ5oKrSN/NZ6CFhN74OePUZID5ZqJ/NLfa3L7sJWx2JWMDEswTsyMe0syWqhmjgSRwLrG1LJv/tEH/m+URC7e5asqJ62GFsAjspAxM/mFkS4UNul3iizfdJA4fd/FoKZqAvpofFoNuEj8YIzrSxOleZZqXriO7YUMtEBlJdM9Nk0XgZl9vI0BN4im6SG50b1JvdZXAYjVhYTRuyl4c2LimxShwDE9Hpo3ZFV0fgOLjZq8n1yDfBaqPL2Rgq4g== 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=f8sm6pe3Ll8IBrbfGPUkhPLEv9a4WJrvUO+0jx3oT7c=; b=qDb+U2WDkgGiNNRDAThkTJCJn6I5WEjvbT6MFu3p87u0ay53EFbfd9q3P22vuvXu6GYeUJ1G2HO5w8MhkWFb7Fioi6E6bOX8wNWsQ2UKO6rI8XADQdz3xsn33SHn+ilD1U+uPw1aW2zh8VRKGTEMaZxgnHuYynwxGqcN65yWZao= Received: from BL0PR10MB3011.namprd10.prod.outlook.com (2603:10b6:208:7e::29) by MW5PR10MB5761.namprd10.prod.outlook.com (2603:10b6:303:19a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.45; Tue, 1 Aug 2023 19:48:23 +0000 Received: from BL0PR10MB3011.namprd10.prod.outlook.com ([fe80::12d6:cce8:e298:3844]) by BL0PR10MB3011.namprd10.prod.outlook.com ([fe80::12d6:cce8:e298:3844%7]) with mapi id 15.20.6631.043; Tue, 1 Aug 2023 19:48:22 +0000 Date: Tue, 1 Aug 2023 15:48:20 -0400 From: "Liam R. Howlett" To: maple-tree@lists.infradead.org Cc: linux-mm@kvack.org, Peng Zhang Subject: Maple Tree Work 2023/08 Message-ID: <20230801194820.alch3ot7pvrgig5v@revolver> Mail-Followup-To: "Liam R. Howlett" , maple-tree@lists.infradead.org, linux-mm@kvack.org, Peng Zhang Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: NeoMutt/20220429 X-ClientProxiedBy: YT4PR01CA0033.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:fe::12) To BL0PR10MB3011.namprd10.prod.outlook.com (2603:10b6:208:7e::29) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL0PR10MB3011:EE_|MW5PR10MB5761:EE_ X-MS-Office365-Filtering-Correlation-Id: 8d8bb7d4-f643-4724-b387-08db92c84398 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8A2goLNJFl25Dw8fvs+UllqLdFTFQNXJRkBW6J4dd2+MLfV+gADW6txNjFuG5SZwkSLCgUwVezxPTMfbysDrLEQBi85gTRzB0Kesun/kW/JVt+oPB3a7GylVcZB26IcpTqfGwRa5QI6BQuY6sGDuymcuYSQs4hOWNLJ0Jed9YAF36W4At711kf/o2Vx1OMyUckB4//w/vz3w/Bbp5Jt4vo+NGNhyqXlNUNZQXjcYx9NGQw3tuGObg3Bnre3W5Kk4NKZVRpC0wY6YtAE7UUbcy3h9z78AgEeyZIFXkIvq7yLVJN1gSjn6jyVZ1PS9re74YIheUpTPOCaoKyedKn/aDeC3gVILHJO5QndbKuzB7CG23WXGyCSTbkiWrXWKK6qtzfhYhjmxGSMXAOFDyMK1Xxz5J2HZAeqK3/N0oZiNLyofhhUgI+QWsZDlmQzYwMDadcafy737TRqK0P+IgAE4GqlnDfJIa12BqhgLcpaUa4E6LioF+R3GHBCIAUNnEc5cUZjGS94GrZCF27UoDa9OFelKaGHaqLV/R8H0EaBudlWFjys6sKe3WuzHct0lEh/rs048rvGf5dOXSnn8U0Xhzg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR10MB3011.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(7916004)(346002)(396003)(39860400002)(376002)(366004)(136003)(451199021)(38100700002)(1076003)(6506007)(26005)(186003)(83380400001)(2906002)(8676002)(5660300002)(8936002)(86362001)(478600001)(9686003)(966005)(6486002)(6512007)(66476007)(66556008)(66946007)(41300700001)(4326008)(33716001)(316002)(6916009)(66899021);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?YpNTcpUZM2tfECzRKM84OeLQjPI5Uv5kQ/LPnZ1Ei+tYdEt7D6IiLuoPgp7t?= =?us-ascii?Q?M6cbMo+5WG7vN9VPX4OTNzQ38DqjG/KMROgw38YAyVlyAFvIYPubz6FhEM05?= =?us-ascii?Q?Xj49g1yPu5K9uI8CVAN4sBxCO3QkEHzC/VSAzU1mkIc4/xrMZiiSBaEinrmN?= =?us-ascii?Q?ywCobxgFo6VvojPtWpfLNa8b+ycyAV+pnYYp3St7oF/WpmQJZTB99wfU7a8C?= =?us-ascii?Q?PKkWVozs+sS5/eRLSsO1Nqx0cLj9qb5nMpyyGzD1EvX2SibrE7OJ1JVQjD0N?= =?us-ascii?Q?BqtpHezUcDhA9K9E+dyUyvHSVqM9rwWHoVUplWUMZnSE3Vfb2I6yLdZvcznz?= =?us-ascii?Q?bvJnw94cx87gmPRv0HtQSPNlYQKbxJHifMYpNQhHPL+JnTIDo5+/HaXP03iB?= =?us-ascii?Q?uKouuzh7qDZfEOO8AgyA3pkim87dKny5FOj0J0aRVN61em+A1hq2tyiTaw0Z?= =?us-ascii?Q?vSbsSpfwdrmHXkgcA6KXWj5qXJG2AX7wIJF5jdVRDqQqDy9SMvxSi4yqqLnZ?= =?us-ascii?Q?h8HBvly0xM3RLnTU7JaRqm7E65YXQhGPNJZ2oIESt5wwBl+xsi1PZs6BDMPV?= =?us-ascii?Q?sJ+NVRQl/aO4HMqVQHlQjIbmI38V22B0a/pNk3jw3NOQfys3sccOxdcfgMoo?= =?us-ascii?Q?znW17fwGj339esrAty7f3TrFbomyNNT2r9BanXd+aB08IsQUq2SXqorl3CZD?= =?us-ascii?Q?ak05OHbFkw7zYxKIaRwcknalVgHtFPXp04vyfj4KGXr33ws8M4pJZpgPAZMT?= =?us-ascii?Q?kvL6xRRPFeKVg6YYbPIX5tB/BwpZaa75u+3sZkLl36tlOUlzHtdFqi1vUFft?= =?us-ascii?Q?l6KtrWiJCiZvQgG+6umX07wfk2kGolnpJ8i6MCOWSHObqhbl1UNKXnr2dulf?= =?us-ascii?Q?4X76LY584RGSk4lHgQGzHqkDm56ltJ9ooYHn8ino+MwGukR4VQdKeYus7Cdo?= =?us-ascii?Q?Uky2emRMzaQit/1cG8MfM6zEFanDUbc0LL47cK4S5msM+uR/uT8G/Xz5RU6g?= =?us-ascii?Q?BygFaTTr2siTXD6OWzT51tSAQ7WugV2HHasv9hJPvcUYty18KE2mBZyelP5X?= =?us-ascii?Q?IIxIQr85C0TpN64lb6XQo0dxUfqZlVQWYAKGkf+Zv+gIxBC9FQtCcmtB06gH?= =?us-ascii?Q?VM2F5utMC8S2Cf236VmTieYaL2XUFM/Y4OI/s4gbzaZTJpoiCtMsUTSMVvqi?= =?us-ascii?Q?wBjp9RTUAdXS/54TjYUWfuANFBc9uz9oSjY6JybQmuL5T0xmbUtd3FflaGFS?= =?us-ascii?Q?t5D1Jj7xFe794OYofG+p4iRzFIUTTKMDyWLvP05z/b1XmXIuGja+p0bdxegM?= =?us-ascii?Q?wYO4vY8LJANPu2mpTyA81iHkemQnMMYUK6S+tUHPaCHi3JyoaBt0nWeUaXre?= =?us-ascii?Q?XdHi/2XDwAAKwoinQYpcaOK35+0RQh2xpt7VJ0xxI5ifV/0wGF9TyeXb0juo?= =?us-ascii?Q?yR/46lOSa0miI9lgS7um54GUgzWE8/bpurBICkdaKF1KAz/DIXTAgd22vywI?= =?us-ascii?Q?B2B3C3R6H57LRHhZCgm0epnvI0TTT9u2HMBtDX6aqmpN4fyPOX0ukEQ5m8JM?= =?us-ascii?Q?ygFmQmjLjQwGSfsQQ0STNuhiu4OZF8QmEE3ykMNu0iOKY77qO+SGDqAWdx7B?= =?us-ascii?Q?Tg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: GI25FXgROfaO8smbHECKa1ciuI+jJI2MuG8I9lXoBJl44LMSY0RViYoJ8b4ikHHLCrLv9WKwa+kypFyGvcK9LefUDr+45OZ4IxULLtEIa89zi74ULg10YQQ1g9hLDTnRTLbRSrlbAxzZao9/039rkv5+2mmz4SKJmMr+50KurInQNqttZ7rfKBUDF3VTQRSCbF45fXV9OSBcUQfNvBPnigNdIjy38Ni+3NfLDIgqdG16LF9JqnGOvu7wEM2lGWGvCvYX/oqMpVleCT7WWM22QGZIXDi7E8OJkzq2HxuZktOpcQUcwRBb6nuS/LbSBRwqyJC0GLyzhpqQbXmTdKQAOZ4uLPL/5mmcKigpKH6fHyA2V6fiTA5sAugyL2r6ZFC1q94xgd9gULRz66cHesVyd46wFtJ/6A83PrnVynoqL0iwFh/VFRuD+c+30l6oYP6f9sLC/rw2dZzP8QQgl6+4UDiqNL3cidYL0xbI5jQQuBYUTxgHBscWfc3+OJQ5lu0MAfueYkFNU9E4JbrRhgVnpgk8XrNiZ/T7U201JrfySgLSPb6GDFd48T9DvQCbAN6OZln1hieDtejnX0/lbXbSc/3oRyzHHaRCsrnXpO0BllZxYITYfFeJbGtKD7V6l0lj9jfzH9oT6eOW5mYIvULPZoxaYZSIOqSgrFJWIrkcQmZBovMMh4HsEnzGzWwKTAuB34Mb/rJnk8UUivYQCPNE00iYwTxacgoQHQkGcqwvXYCjPUEiuuKj6DE5wSvcc3FOX6q//GdX4kpP11Wsb/8Me9OLu+TzTycKtx9C/WkWBeZ9f9iR64GzbdPj5fYXxNJEt3n93Itt8gxwjq+ekukGuQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8d8bb7d4-f643-4724-b387-08db92c84398 X-MS-Exchange-CrossTenant-AuthSource: BL0PR10MB3011.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Aug 2023 19:48:22.9238 (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: Mz1+vwsmnI4Cah4zEtrJQdgnqS6P9rGyr/XuW1faC+2h/79AB7ns5080KDqlGtGtLQ1VrkoZxo5GDNDMqki2qQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR10MB5761 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-08-01_17,2023-08-01_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=999 phishscore=0 mlxscore=0 adultscore=0 malwarescore=0 suspectscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2308010177 X-Proofpoint-ORIG-GUID: 5x9gnUOU2pAf6gmVHMkgpuXRvCTDgpA4 X-Proofpoint-GUID: 5x9gnUOU2pAf6gmVHMkgpuXRvCTDgpA4 X-Rspamd-Queue-Id: E5EECA0006 X-Rspam-User: X-Stat-Signature: up3xhueescif1mp6pka1ksi4c6th9qz5 X-Rspamd-Server: rspam01 X-HE-Tag: 1690919329-77123 X-HE-Meta: U2FsdGVkX18mF8h+37Y2EG6KJVd3Hq+sOTWSH4rXDy6P6FGW6Vifu0LB945+2jVlUILEzhAqKwSRacFQNzz6QpSB3x8nXqIw3msjmRL0QrguebicYkvwBpq2QKpnrSOxBQ4fZoSXD6Ac4TRs3WOQIGUzQSQc8Zt9gPOH7NtjnSV/i4Ao5Acaz2emiwXbUvRoN/bJ8t1QmSgDRleXLxwl8UXClcGxnmIOIDJKbNub3xbg9r+3k3xgmM5kAFw4KRQZ6eMM3V5cNdF+4/xN4s7BLKQzldeKZNn/qRp44M4kbMvT0KfWofkCyrMxJD16qkOQqJtD308bDewpjjQ+Cp9npVQ4N5SuKzQiW4hVBE+n+DjzPVu0JmYV70KlJqelrs9MIYDPzpfBsyoVowRT1n3gR9EwNIjxfHnMV7XZd4IPEBdPOKM46DyVcs+16Kh8aaUOmDLmkYMleHa0+G2DWHar7hcQDUdYJSrPwmgnS3qr6YiMpc3qJtQXeRcjs1EPdiZPV9B5fhB8aKNI4CdWePgmt73qUqG4kfIe/rPmdGHyI3jk/eeYsqgS84ECURnL1nJiyMOZ7qA1UgvBHSMy04M8e0I8YOHm1UYI1uWHphamTUDHD5zKy7nfCOV09GQI+YCAswoBUsy8mfcAslKfWra3YzywEXov8b2kR+3MwlGxmM4C7xZYpc3HRuIpeN4vGuoPnZrt+W0P0fOS4w7AE67u8/z8xFu1krcIrnRVeCGnuBgqyb9FTrOLpMwmlTa7j3Ie6k9UaaUU2TaNAzpxaoFrRSZ8xkUEsJMhik6ydq7/SQ/PQssfitFeXTN7KmxpJF+3vrxEGFAjzPYawoW5b4oCH+/I2cJC0d4aEOE4QfL7Af7gCnL/AhxyZoeuSMuaw9t8guUXsW6xfblxRQqa1OOtsmBUYdi/14c6ADFPKeHweWLY8HHogJfiW30hWRtUFzJIRRqeO8p49of/xQQGFps E3OZskFr LLVd23rpsj0/AcKSSfSBFUsKyi3eEaULtuGpgxQt+d8a88P3KiY4ApEyXlHNhIC5ByjLhu6RK+YuS5bHZrmkpI2gWbvD3g8OpEeFKNg1GYR864M2EtC2/gEe+DIJmrWQ3W5ffmoSwg+iekEx1uTpryKbl+RrCja4xw+IA8hCHzPnrHkufm1UDH2unQcUCMoO4VF1/SOIPKqDyIoajG0KXkQrR4lm18W99MyNH3NKI8lJuaJyy0CpD+iNEXIxO79Q7tkSsZoP9t/TKBaj4Zph9vWh69/y/xamPqcK6b3yGjQVl/3yDU8prkGwHcjHMvEU9Mtt4zHOQ5lozu041VIJOdXZQOHSsBpIYXxPAAiFyZjKqw+JY46L9c1Q771tpqAAJ/Jwq2UfyPFtYXuRuv8Q8LK+1hJ4fegQw9OW9vd/NtRaWqywFVG56ktpV0VWphhP2EGIdxdY9nTPWwn6ynPVyJk9gz10RcEOOgDfRpi/W8B1IxBOhXZCM7Q4CG87Kj+Nl8L3RExbpyF+26RZGyBEKXIE73KWF8MJ2EanlS4ydYT6TaoImH0Dmf2fSd5QRtcBLiYMAdYqrBn2WfnizqI8FQO/XgLJL3oQqXnqAbLc2hgfeZOg1QVUaRscCfw== 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: Hello, This months update of the maple tree development and work items follows. I send out an updated list monthly with peoples names against work items to avoid work duplication, so please don't work on something with a name next to the work item. If you want to work on something then please respond to this email so everyone knows, and I can add your name to the item. Feel free to ask questions to clarify the feature or discuss directions. Likewise, if you cannot work on anything anymore then let me know so others can. If you have any ideas, then please email the list. We can discuss it and I can add it to the list. Please sign up to the maple tree mailing list [1] to get all updates. Features: - Better preallocation calculations - Liam R. Howlett 2023/07/07 Without tracking the tree status on the walk down, we can partially walk down to figure out the type of write and which 'worst case' a write will cause. Using this "write type" information, the preallocations can be a better estimate. v3 was sent to the mailing list [2]. - mas_store_gfp() align with mas_prealloc() Right now mas_store_gfp() is going to allocate once it figures out what to do and it does the worst case allocations. This is inefficient and can easily be done better by doing more of what mas_prealloc()/mas_store_prealloc() does - or at least will be doing once the 'Better preallocation calculations' lands. - Tracking tree status on walks down Track in the maple state when the last minimum nodes, space for 2, or space for 3 slots occurred (height in the tree). This will allow for a better estimate on how many nodes are needed for a write. This can be complicated on next/prev walking, etc. It has to be done in read mode since some walk may have been done before deciding to write - see mmap_region(), for example. - Store type (enum for store type?) Extending the "Tracking tree status on walks down", the information can then be used to determine what operation is needed during a mas_prealloct(), etc. The operation can be stored in the maple state to continue on a mas_store_prealloc(). Obviously, this would work out well if we have mas_store_gfp() using the same functionality as mentioned above. - Full count/flag & Dense nodes There is a bit that exists in the pointer reserved to indicate there is no NULLs in the leaves below. This feature is mainly for trees that are non-alloc trees. We can then know there is at least one singleton that can be stored below this entry. This is coupled with restoring Dense nodes as a potential node type. The tricky part is deciding on when to switch to dense nodes/back from dense nodes (all entries to dense nodes must be singletons!). See mte_set_full(), mte_clear_full(), mte_has_null() which use MAPLE_ENODE_NULL. - Fork & Dup tree + Delete DONT_COPY - Peng Zhang 2023/07/12 This is to optimize dup_mmap() in kernel/fork.c, but other users may want faster duplications of a tree. This should be faster than building a tree in bulk mode. The idea is to just copy each node and replace the pointers in, probably, a BFS order. Once the leaves are reached, the VMAs will be replaced by the copies made in fork, unless DONT_COPY is set, in which case the VMA will be deleted from the copied tree. DONT_COPY is not common and since the tree isn't visible, all nodes should be available for reuse (no RCU worries). v1 was sent to the mailing list [3]. - Push reuse parent During an insert, new nodes can be "pushed" left or right - see mas_push_data(). On a left push, it may be possible to reuse the node by making the write like an 'append'. This may also be possible to be done during a split operation when the write extends the last slot. This needs examining to ensure RCU safety. - Contiguous iterator Some users want to iterate across a range of items, but only contiguous items. Sometimes a gap within the range is considered an error while other times they are not. Good targets for this feature are mlock() and mprotect() system calls. The goal is to provide an easy to use interface that reduces the complexity of the external code that keeps track of the contiguous nature of the iteration. - Remove BIG_NODE maple tree nodes are rebalanced, split, and updated using a maple_big_node struct. This structure is over twice the size of regular nodes to ensure there is enough space to contain the data. Ideally the same feats can be accomplished by using regular sized nodes. - Test & Fix destroy_rebalance Destroy_rebalance needs better testing when it occurs in rcu mode. Currently it is not used in this mode, but it should be supported. This part of the code needs better test coverage and fix any necessary issues that arise with rcu readers during updates. Larger Features: - 64 bit stores on 32 bit arch A number of users want to use the maple tree, but cannot because they need a storage medium that supports 64 bit stores on 32 bit arch. - wr_mas with alloc instead of mas Internally, we have a write maple state, but the maple state currently holds the allocations. I'm not sure if this is worth it, and it will probably need "Tracking tree status on walks down" so that preallocations/allocations can be accurate. Other considerations are how mas_prealloc() would work with this change. - Big Dense Node Type There are various node types that could be added to the maple tree. One of the most useful is probably a 'big dense' with the node being a 4k block of singletons. This would have to come after the dense node type as dense enables more users and helps scope this work. - Judy Array The Judy Array is another fancy data structure. Mathieu Desnoyers has enquired and spoken to us about incorporating judy arrays as a node type or other features he has in the judy array. This is in the early thought stages. Please note that any new features will need test cases added to ensure they function correctly. [1] https://lists.infradead.org/mailman/listinfo/maple-tree [2] http://lists.infradead.org/pipermail/maple-tree/2023-July/002736.html [3] https://lore.kernel.org/linux-mm/20230726080916.17454-1-zhangpeng.00@bytedance.com/ Thanks, Liam