From patchwork Tue May 17 15:22:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12852619 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 1E9FCC433F5 for ; Tue, 17 May 2022 15:22:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7BC316B0072; Tue, 17 May 2022 11:22:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 76AD06B0073; Tue, 17 May 2022 11:22:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5968B6B0074; Tue, 17 May 2022 11:22:27 -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 47CDB6B0072 for ; Tue, 17 May 2022 11:22:27 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 12E1715C9 for ; Tue, 17 May 2022 15:22:27 +0000 (UTC) X-FDA: 79475601534.24.A0DB5EE Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf12.hostedemail.com (Postfix) with ESMTP id E8EE1400B9 for ; Tue, 17 May 2022 15:21:57 +0000 (UTC) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24HDw03P003203; Tue, 17 May 2022 15:22:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : content-type : content-transfer-encoding : mime-version; s=corp-2021-07-09; bh=39burcCxrlHCTO0uDVkfnfQU1qjDQNk4ypMYIJugzt4=; b=NiTKbHe+whFC9X1Zot1jEUD5vUCgRfOe0o3yjHjJ3z3KKK1y33KDfRgGyU7lD93o17rN r9N1Bn4Auq9C66q6HbpdJTgndrKVagN6sMF/0dJekvF9BG10jnRzBxEpRH3ymy78SSzR JKg44gm6LDc44uuAC4LVH3JQBfCUvSmeUiL3nEQI/Iaax6j1cRpLRka36jmne8V8Uc9x daUmtjoS87zyP85lOKOojp7dVl8gyxcQRyMTng4xvM6oAObqjB19j8G9U7phEJLt9yrx nw8iObMt8qLctuSYAwMdTBdi8xlqNnqt+0OGTjQQtCzc60Bx2TX8WU8Z7S4OzJ9+RE6R VA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g24aaej9p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 May 2022 15:22:24 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24HFL1oc029012; Tue, 17 May 2022 15:22:23 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2102.outbound.protection.outlook.com [104.47.55.102]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3g22v37x65-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 May 2022 15:22:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e8SvN/3K6lO0GgBtgI6FQ72DNKn+vFPhQsqxEFUDfF2YNDQOeWu4P7jpdMsjluI0T60iIP4mX7v9hAv+gNnI93jPdK56QGFB+Cd996BIMfE2b/3fvnSVH/UgxJGtjwKa+xkYYSrL4Y8aBDI6AmkJ9W9P5tFA9nNrU8W0WWAhqk+Dzv9It7uRR+Bw9HB0Q0irxi93p4dKTNt/UxpieiyXC6A7Wjt2uIhjE2lkbuARMZUyP4TspHnBgmZ358zw/7MPAZpJA/XwhxA+GjnShyfoE8bQNxFhQEhTAwOco0bt+CmtQ3qgl/N9lnXgw4SnNkE4KlXr4yYNNmfDgdZ6N7VviA== 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=39burcCxrlHCTO0uDVkfnfQU1qjDQNk4ypMYIJugzt4=; b=HxPzFvJSpOn4MCFvC8/5y97V8Zzjh1VgcctPZv+oRVz2AHT2wZGr59nYR9/c1DIORTtfLTTcyKH6LD4DYUsvd2oiuW6ZAKv36XTuhwmXXo7beyPALV9zauUE+g3YCxnpnTv4n/Rswxs4rKMUXpHComS1VU7hywUsDXDbS7oHedlqgreU1ORbmcoz2qr3wUsI9MzVed5vhYyrgmznxuzfinYq00Hhv7XrvXkLyk6AgIfuuqNitMh7SXeQZPe0Sd0Awa2YnvFNKL01WZoJIWE/5wpqTvPfeA4ysPtk/MzZQ7Dfj0BfZEe7sj745eenZ9tGndeYKc6mhkAm0DA7eiv01A== 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=39burcCxrlHCTO0uDVkfnfQU1qjDQNk4ypMYIJugzt4=; b=jgYSbamVfzfpKFxF9WN5VsOcOR7Sl/iOwigHYkDx8UwpGp6fsiNnImIoFimEwfOfVGplCDvXOht7ZcYAhE1YYOowhKqMjvjKP2Yc3myOvlvPK7g/IQn0Zi/eLvJNatlLxXW0TMH1yiV5gwfV/hd+aIknDIjeCUawx6m8Ej4oYTI= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3166.namprd10.prod.outlook.com (2603:10b6:208:124::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.14; Tue, 17 May 2022 15:22:20 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::318c:d02:2280:c2c]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::318c:d02:2280:c2c%7]) with mapi id 15.20.5250.018; Tue, 17 May 2022 15:22:20 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "linux-next@vger.kernel.org" Subject: [PATCH] maple_tree: Fix 32b parent pointers Thread-Topic: [PATCH] maple_tree: Fix 32b parent pointers Thread-Index: AQHYagHmsteRxt79AUGaRhDYpWhYoQ== Date: Tue, 17 May 2022 15:22:20 +0000 Message-ID: <20220517152209.3486724-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 88942948-8299-4cc1-0c13-08da3819092e x-ms-traffictypediagnostic: MN2PR10MB3166:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 7ZzpHyeKUd2k9zWjt4jt04fQV3UOD9KVydS5Zzb4AANq04/V+iORg5m1XE+Kt5kmteoefo82TiovDM2t4tsWvYWtNbZOXnTtqFXpXzb38OrgB1bpkkdG9zdrRWFfrmds9+b9N6TpMnr3WlOwGgmhYeqh7611sHU4LyPIQOOYRiCv9D/c8LDQefnvrQvCbLOF3Gt+iZ5jqpdjovPNDCk9eWslcRxAQ+3KMJqWMM2mMSbMNcAoCK45755EzgQnjZDJ903YR6OwnMWwDYBCDxwwSphFck+r7mwGiwaDgveI9whVNppRxi/ZYDpWpv+J3Y9lO/4J1FyIFuANUjP3x20tKqih6WGBLQoxi3L/2fj0DCDBAfSpHepdxstwEdpN2YdIUQcQTxIgu8F+YvKYdyuxE4bRB7ZbdxXEOInTU4zNviHXyM+F3unYl1WuBEaATNQruic6QanNhIof7dNtAfDPpfMpBg/yMceFEhnixgFCWTcwLDy7SZdcNnxBAlOiWE8QeJgJVvdaCgzJ88pQMJwLMjWWgm+9SFzqT0JRd5ryhSJEOSnXKa4pPLg2qRaIeTj9L8xt9IhrdrbVEiMCq0OOGyH1pp7orA4REmyqcO4j5UiDOtcm6roht7RdngCx3uptIFg6gXO3UUBkVfedV7df7787A+nXDDrDbEIHdnPtE591BnnGUuaiUQHc4hEJNr0V+RF1y29wZNHpAr1BZMTL9A== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(5660300002)(8676002)(6486002)(66556008)(64756008)(76116006)(66946007)(66476007)(66446008)(91956017)(186003)(2906002)(38100700002)(38070700005)(8936002)(71200400001)(44832011)(2616005)(83380400001)(508600001)(36756003)(316002)(1076003)(110136005)(6512007)(6506007)(122000001)(26005)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?Hbk2fIKarnhRcCQdxjEeOVB?= =?iso-8859-1?q?NXJBei+WJMzPXeJSVO01TyldxywRbl6mkOpjgZQ4QXR9EPk/214F5nbmAClx?= =?iso-8859-1?q?hjnoU7FGmdIwPrU/9a4hY8n5ymtpQP+SvnQzFxglKJCCdwFT7vax7s5MiOF4?= =?iso-8859-1?q?c9B1UlcRKal6TIqrmiKBDA5+h9nn44vkPfdsp5q9mb1ivvG7Cz8ZSjNwdJF7?= =?iso-8859-1?q?eexvW2g8bnLjd0lHm3O3oIoiNQVhBgFCN+I6o4qVKBYPsjSfHfij8qgJAptv?= =?iso-8859-1?q?yZ6NJN9yMvv+oKsHr32P9ZjW+SNaQdqmdtVsEmoEx4SYwXZ8Vq+lzVyCVnhe?= =?iso-8859-1?q?lXq8CkNH1aRdc1SazEnPTLG8+t8UeTXxaru5t+BzMWTzBHjhUSSyHPcSUQ5E?= =?iso-8859-1?q?5ZYyfeP6eGUJ8+KO8EE/TWnqgjeHcMpcwH2L8Py9cTdyVKiNZ4nYKHXSddPf?= =?iso-8859-1?q?yltqHhx92IpmSy7A/Y5SkDsacyZ//JMW+qD2SbZte1wd7+1yP5Mezz7rHBMa?= =?iso-8859-1?q?tB6Bsu+i9gXJYs5Gy+FHue3vbYJTlYKrGj4NZNZPr/pByJq0guCRM0HLSA60?= =?iso-8859-1?q?8qKFUROcSPDHXCvoPCh9pIArkz0um3WNOb/OtlVQ3yShzRhTNz3b7VOFg95J?= =?iso-8859-1?q?jlnX4et9eLeovgDWeVh6pVrQvNqUEiInkIVrKpuGZFUfSuO79v8LXExGE9+W?= =?iso-8859-1?q?UvO4EuLTI272NRAx4zbdZXrtq06AlDq3GZCSSVWK505iIHNYUTYje9e7nC25?= =?iso-8859-1?q?w5EEe7dU+hoTyu3yLK58knd5QLnK5rvZNxWowuNm2yyXEraYs367D8JinFb+?= =?iso-8859-1?q?f1s0aT0ZgTGj4zmclLM/gqxPlFuLlxXjbGG+V+VT9ap2tAfxXsZfHXXQgIO9?= =?iso-8859-1?q?VzKejSH2Q783mr8kVrX63G/Xrg5iGAbjc7J8UEYiSgjFgWjA5ISY+zmce28e?= =?iso-8859-1?q?NICvnKtbt1lV1M41+ouQj0E8tJTgVmTnV0gqgj3VovXf4YVy5Db1po/M/WK/?= =?iso-8859-1?q?KHt9RSrlbY2p/qfeyXfCWCtWsau9iRftzaGtZgjxiP2zaP/c4r5uT7PL1NCF?= =?iso-8859-1?q?pr0tHEUr9UXLfWRnM+qqApLCxCkqNZQEdSTRShAIj/poDbg5h+3e3DYsjZhC?= =?iso-8859-1?q?N7KuVV/T7x/+WX7AT/WNgRXoGhN10yHuoGtF6XgX4lXlIl54pwyMi5Z0hdA8?= =?iso-8859-1?q?iBXU76OwPimfYQXdW8ZCaDt64CmQQLjHCleqi5B1Di1x78F7poUoIo/gQtrM?= =?iso-8859-1?q?Vu7VlqBuuuRgbdQStWaRDET0cc3hCN+w1cVvucwmqPFMIvBJ3fxEdctWjVtd?= =?iso-8859-1?q?XHdIBVHc7Trns1Zg0dwjtd19inW4ic7vkfxIqIkquBeGottlN51P/WiP5L2W?= =?iso-8859-1?q?kaNxO9renEODaONDkCr3TdiLRZ/PqpyVM2IKC0pzCNskX6W7ZdtrnJOAu9Ak?= =?iso-8859-1?q?/OpHriEaB0wH/C6e0jyke+SbtWawduJc6OX4L+U/R3DLxp/JxJzIC70qhsdQ?= =?iso-8859-1?q?F/BTwI1UBOuvk+b6dR8+vTGuU6DcEQK4HBG6tw/3AD5uEF8gVXZdR4tAElWs?= =?iso-8859-1?q?fvqqt/J5TkZ7lpHv4JfCadgHqDR9JIAhsB6IUyuFuVXW98JiDb29TYL4ZpN+?= =?iso-8859-1?q?U+tPBT82/3GIRCTMyuOfcNIaYeF1vausgMrhs6Rx0RG1qjd4EVRaMmQQRmlB?= =?iso-8859-1?q?CkylqSsv8eK5yeJ98a4IftPsBJ0PXwniT5WoUxhr5lHSw3jtAFtEncGckwkR?= =?iso-8859-1?q?7qrW+oGcaUBAEXieiBxYKA47KBHTgAiZ9JbBHfIcM+XopWSQkpkqy8KGgLJ0?= =?iso-8859-1?q?NFY7YF/I=3D?= MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 88942948-8299-4cc1-0c13-08da3819092e X-MS-Exchange-CrossTenant-originalarrivaltime: 17 May 2022 15:22:20.5540 (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: H66N+Im1rYUFbMD714T0LU7DnU3OEJCvqd66vsrHWY14E9v9lGqDcEqK/a/FpeweUBePO4wiFgyVx4hVr/Y2Qg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3166 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.874 definitions=2022-05-17_03:2022-05-17,2022-05-17 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 adultscore=0 phishscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205170094 X-Proofpoint-ORIG-GUID: bLi9VJrQh7pJdXhZoOT5yfYz-JTJYvbK X-Proofpoint-GUID: bLi9VJrQh7pJdXhZoOT5yfYz-JTJYvbK Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=NiTKbHe+; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=jgYSbamV; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf12.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: E8EE1400B9 X-Rspam-User: X-Stat-Signature: jhoboupsng5n9rboc75y53otfbsjutb6 X-HE-Tag: 1652800917-274936 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: 32 bit parent pointers need an extra bit to account for increased slot count. Update the constants and documentation to use the remaining high bit. Signed-off-by: Liam R. Howlett --- include/linux/maple_tree.h | 2 +- lib/maple_tree.c | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index fb689d628cf7..d044140a3a2d 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -37,7 +37,7 @@ #define MAPLE_NODE_SLOTS 63 /* 256 bytes including ->parent */ #define MAPLE_RANGE64_SLOTS 32 /* 256 bytes */ #define MAPLE_ARANGE64_SLOTS 21 /* 240 bytes */ -#define MAPLE_ARANGE64_META_MAX 22 /* Out of range for metadata */ +#define MAPLE_ARANGE64_META_MAX 31 /* Out of range for metadata */ #define MAPLE_ALLOC_SLOTS (MAPLE_NODE_SLOTS - 2) #endif /* defined(CONFIG_64BIT) || defined(BUILD_VDSO32_64) */ diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 751aafd01c42..8cde2edcb4f8 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -354,7 +354,7 @@ static inline bool mt_is_alloc(struct maple_tree *mt) /* * The Parent Pointer * Excluding root, the parent pointer is 256B aligned like all other tree nodes. - * When storing a 32 or 64 bit values, the offset can fit into 4 bits. The 16 + * When storing a 32 or 64 bit values, the offset can fit into 5 bits. The 16 * bit values need an extra bit to store the offset. This extra bit comes from * a reuse of the last bit in the node type. This is possible by using bit 1 to * indicate if bit 2 is part of the type or the slot. @@ -366,19 +366,19 @@ static inline bool mt_is_alloc(struct maple_tree *mt) * 0x110 = 64 bit nodes * * Slot size and alignment - * 0x??1 : Root - * 0x?00 : 16 bit values, type in 0-1, slot in 2-6 - * 0x010 : 32 bit values, type in 0-2, slot in 3-6 - * 0x110 : 64 bit values, type in 0-2, slot in 3-6 + * 0b??1 : Root + * 0b?00 : 16 bit values, type in 0-1, slot in 2-7 + * 0b010 : 32 bit values, type in 0-2, slot in 3-7 + * 0b110 : 64 bit values, type in 0-2, slot in 3-7 */ #define MAPLE_PARENT_ROOT 0x01 #define MAPLE_PARENT_SLOT_SHIFT 0x03 -#define MAPLE_PARENT_SLOT_MASK 0x78 +#define MAPLE_PARENT_SLOT_MASK 0xF8 #define MAPLE_PARENT_16B_SLOT_SHIFT 0x02 -#define MAPLE_PARENT_16B_SLOT_MASK 0x7C +#define MAPLE_PARENT_16B_SLOT_MASK 0xFC #define MAPLE_PARENT_RANGE64 0x06 #define MAPLE_PARENT_RANGE32 0x04