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 DDEBFE77183 for ; Mon, 16 Dec 2024 22:26:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 457878D0008; Mon, 16 Dec 2024 17:26:02 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3DF1E8D0001; Mon, 16 Dec 2024 17:26:02 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 232148D0008; Mon, 16 Dec 2024 17:26:02 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 01AB58D0001 for ; Mon, 16 Dec 2024 17:26:01 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 95B39A02F9 for ; Mon, 16 Dec 2024 22:26:01 +0000 (UTC) X-FDA: 82902254904.27.F97988B Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2051.outbound.protection.outlook.com [40.107.92.51]) by imf14.hostedemail.com (Postfix) with ESMTP id EB6CA100003 for ; Mon, 16 Dec 2024 22:25:25 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=JVlrNm2L; spf=pass (imf14.hostedemail.com: domain of apopple@nvidia.com designates 40.107.92.51 as permitted sender) smtp.mailfrom=apopple@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.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=1734387944; 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=eqRGHL+/CZ9ul6m9fa4uXoLIlClOUBWGCbvLUpMs960=; b=vJKoxh97/wC3pTpK/7MuveJpVznz6NSb7mfMysYy+f8z6jD1BLem6uRkEKZELZncLG4zCr O1uqHju4h2GrdO0uQBAmlabfksYggYfvsK4bQ77M+fswF8DB8+xDqrLmcsdvzQM+816ALr svNH27YgZFV8wm47taJNJI40mT16Pmw= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1734387944; a=rsa-sha256; cv=pass; b=vN8JpVqfbtCEK2L5GNXWE/ORPxATIbaV5x3RE50jCnRFAm+6N4o3kJAZrBuyoVrHRaK+hH Tp00IuGwOFrvEwv+wWKkQeCnelJaRPlQJRCnXhJcVollS0aQXTdNS33doFAsjWJiNAT1kE tfBUomMNc0RjZpgO+IcBQ+TatPw3WB8= ARC-Authentication-Results: i=2; imf14.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=JVlrNm2L; spf=pass (imf14.hostedemail.com: domain of apopple@nvidia.com designates 40.107.92.51 as permitted sender) smtp.mailfrom=apopple@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bbj8WlvJLcFePR9p7wdFNx9xl2Q/dvqFPB2oIsRqKccWntvlxFFoQdZWxNeH01Edk9CPYSP/WfBBK2WOZ8teRNq2sNbO16QnHkwX1eyop8diVplCSf7YkRlvVk0MHq58mYAaNJcOa/fri7RgnwBMXfhNx7jWIOVFitVcKvyAIAVxxoAbv5hpdDJmFs/3KCW+1QxYA99tQ6QrAr3yKzcDvEZ1NelxwdbonpMtkRyhihrOKqWsEu69819oAORQ/e+KLIY9O5KZ+8Gd4Lll39znizdyAWPIjRGtRkAijFfAaCKywUQIXXLMKA5HXNXE/gVJ30o2bwc1+DvSCGQNtOmvRQ== 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=eqRGHL+/CZ9ul6m9fa4uXoLIlClOUBWGCbvLUpMs960=; b=vVlckW8ZUIXdk3tIyMYKwmHt/H/HEAJR0QG4fbBsJp0EBvJ5eBRBBMoJUGPNWbJV+h1Zf9WH7aWsl+KM5Xr0bHxrdYL7VDf+++No7CD1CG7ByRq/BqwioU8HEWfdyv4On4vlzOjA0PyTGWMCmJe9s9H9o21eVTPryrnWFxHXpTe12LdyWyqdALYWu4J3spPaYzSsq0GBrXz+oMHtU+mFWrbNq72l7eM6ImplnqUihkaFVZrMiUglBpx/0oC950FhsMRVk0YN6ak+XE2WDjcecf/FN4mH9kqMbvANu27cT6PBOLKHgQxfsn2M5KBRWZz1uYpvpKeKP+BX7DZqxvM6/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eqRGHL+/CZ9ul6m9fa4uXoLIlClOUBWGCbvLUpMs960=; b=JVlrNm2LwOyf8GT0Bc6eda/ryKSzq/boMmohgaoxdf4IaKvlErfe4ET/d+QgnmOWxxkFtmjV95SwR7S/3iRzEueWbOCUDuwyWAzsKElwdoztI7h8nhkVY4uoCMba95eeJKfaCZBw64zMYMhGbnl9xrGXDomtGoTmc89UQqiczcd8RNduuK0ET0INOG6zyJ/kprnruu7rUFCQ97EGCm4524lE8OS6g4Tx95STguCAaPI940GErq0pcsEgO+H9DrKZOJaLqX8ydyAkR2V519VyEF7XBokFwotDKcSZWslTZvaZJcq5au6Wwz28YnvzBp5jvwRKuUWwPblUI+qlVCUxrw== Received: from DS0PR12MB7726.namprd12.prod.outlook.com (2603:10b6:8:130::6) by SA1PR12MB8143.namprd12.prod.outlook.com (2603:10b6:806:333::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8251.22; Mon, 16 Dec 2024 22:25:55 +0000 Received: from DS0PR12MB7726.namprd12.prod.outlook.com ([fe80::953f:2f80:90c5:67fe]) by DS0PR12MB7726.namprd12.prod.outlook.com ([fe80::953f:2f80:90c5:67fe%4]) with mapi id 15.20.8251.015; Mon, 16 Dec 2024 22:25:55 +0000 Date: Tue, 17 Dec 2024 09:25:49 +1100 From: Alistair Popple To: "Matthew Wilcox (Oracle)" Cc: Dan Williams , Vishal Verma , Dave Jiang , nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH 2/2] dax: Use folios more widely within DAX Message-ID: References: <20241216155408.8102-1-willy@infradead.org> <20241216155408.8102-2-willy@infradead.org> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241216155408.8102-2-willy@infradead.org> X-ClientProxiedBy: SYBPR01CA0154.ausprd01.prod.outlook.com (2603:10c6:10:d::22) To DS0PR12MB7726.namprd12.prod.outlook.com (2603:10b6:8:130::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR12MB7726:EE_|SA1PR12MB8143:EE_ X-MS-Office365-Filtering-Correlation-Id: cf2aaa73-79dd-4a0c-e93c-08dd1e209b79 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?nJZZBRNwtpTSV+Qg7sY/q9sOysfwJuU6WpP0fgMPcOr9eAyVT0nYsHWOdLP+?= =?us-ascii?Q?KB3yklv03JtS78SRA8zyrZsOerIOt8NcIT2Kht/F3rvxAn0jpEthF9TyT4jv?= =?us-ascii?Q?9WnCBRQtOUL8Bj9mw7GidXiS7rNfFwUzZhvGtKMIXGFr45PI5Ja34hq4HJx5?= =?us-ascii?Q?l8myC1C/2EGYw9XyWAooDOxpgX7CAreifH59fyqfysJumiAVd6i+5stLvhfZ?= =?us-ascii?Q?etUXJr5VJP0UlXUHTHkflKAaFvtuNQCBQ2F3bIGEuUmltlWSC0BpNoIRzN++?= =?us-ascii?Q?u5Z/9LsrEOB25evVjbvRqQWX6y/vhfc/+FsGB7q+8xv69zMN6GSzhvpbAZcv?= =?us-ascii?Q?ZcTKW/siDtxGtCL5OJkMHRvuJOMWD5H1eM5qufFNSj76nN2+R/3ZxaYN5N2C?= =?us-ascii?Q?YqUACTH4KrmmkLSosT/y7dbk2dBHiwzFAAMgHmfABomM+PYjXjiC8KRwUpdD?= =?us-ascii?Q?XeBEcTYlLWiWQCOI6/yvvUASnRPIfCszJkp3gdTo5wmDGXKyYS4rfEliQ4Hz?= =?us-ascii?Q?yplAMC7aNja3gBU+Izl8KVwno1SythxRKIqvSVnbnqTdMWAKqZzNoCERQdFG?= =?us-ascii?Q?x8Jku4z8xlNqD1pcXSyZQ2U3zbF4bn0Jgd0Gk3TtoPa7cu1JEQ2wKYdKSeqL?= =?us-ascii?Q?LzjCs11B6Ww0vkDsTOv/zANaz+NHPJftXObvUM/A7KKXHLLC4QNeWSQ5MSxV?= =?us-ascii?Q?VzpmuNf9Y66fd6G7rZF78gMiXi42nhgaLrKuMRftN/udT3yVuEN1GtpFPSBA?= =?us-ascii?Q?AyJGLf6TeDRsE6rM5a4B6WQM4462qx+v4w0u6CFuG3QrDjnCBd2HY5lzoysX?= =?us-ascii?Q?HadBf/v/PcNchdcgDResjhTq5Qn/5QFrdcqouAkgDaTr621Q6IoDmmQInCA8?= =?us-ascii?Q?hKDGJ7hJlQsPIvQ2ukZT6IwNMqJkTAVZgjG/B8+vLgLkRytqVSwZCTK86mFr?= =?us-ascii?Q?tJ23Ii1td+AIn3ZlqfyiXP9oasSTtPR39Np/No079x8iyBIqG60sCG1CgHK4?= =?us-ascii?Q?A6k7Ka5qfN+QktP0z6y/Q+sat/8BB1eOXAxoL+eYKt5ifsfeK7RVKrjIxmej?= =?us-ascii?Q?pySjaVKdvct77+pOwdUoI+H7nopV6123rQTsCfnWB13F5K3vqbSEnfDNJ50g?= =?us-ascii?Q?AJjKAQFuZOO5Ei8smyXYXilNKpORgAdkdrlpdFP4j69avsVHUj5UTHWl4+T3?= =?us-ascii?Q?PWFR/6G0B2DtaoB7rkJJ/5qyKeF5S9fMDbueChqIbJ9AQEHQG1el3RUjD5AR?= =?us-ascii?Q?nch4IZ5oMQppDNpQhCPmVOBSIOQBO9oD9NBwvYUiM6UQGtLQLfOHUqPworaI?= =?us-ascii?Q?eWhHkVWn1L7CsJRU/PGD24HoWWwVfcfwhVsaywZp2LDdU8yhNy8gkhBPAmBV?= =?us-ascii?Q?hBCWImb7FudRoSc1pw/owoAxVd58?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR12MB7726.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+nKoz6rJiEbDOa+Ird9SQgxTTtsgiLJNT2n3GRobwSEeHwBVAx3qFvWvipu3?= =?us-ascii?Q?fNCf74gC4jQPPUKHPXhK2I+O6zE6CmVMOgNDO0D5a3P3rlrUlxr8cIrJdn53?= =?us-ascii?Q?zPs4+RAjrOzI/vJcaPmOGlnnvS7tyfuPJaJRdW3utMEwLq2LGbptKa4HV4rJ?= =?us-ascii?Q?tMpRE/iiehLoBg5KOrKkJRCociqXN5JXXkmGJya7KykKlihy6LZm9jAllzPS?= =?us-ascii?Q?EkBaLOHmdWaf4QM0CbZtnw2W0QAGZoiv8j/bhXsku0L9TJ3dYqWuEGkewOCA?= =?us-ascii?Q?TfAa0GbLf0qVl/nk8J1URfmhnD9PcgxKqj+VmyUVVbpz8hmMYl/VIzBihxTN?= =?us-ascii?Q?FNaD+y0KXBNid4gh/4yZX/9E/xRsynycWpgEzIY+ayKn4zrl02yEolNqS5Dx?= =?us-ascii?Q?gwyq9TxvKKDETcvK7+GfAA9PxaO1kN8A+X4OCyMFmOqTjXy4wahm57++AAew?= =?us-ascii?Q?7Z8biHJu7HTMTrpltGZX179AtcJPZPipr25aVpd9kd2GpQwJY6ZEFo2LEefs?= =?us-ascii?Q?w673o36xlqWtRQj//dB378qUhLUoknsb4l6o9qZu1H68MAotr+x7/SGgWioV?= =?us-ascii?Q?EKvhC3h3ub968Df/9CXWmc1LYsGJpgOSG7qCxg+iZ2NnvNcjrlfe/xZa6bkH?= =?us-ascii?Q?scO4RxgAYK2kf/tmChHjYhD8sF7gB5XVU5DifE509nRtWJ3o+ftpcMRYgpk/?= =?us-ascii?Q?YqQ55QsIMcxstbhOFpoRO2rxPN4KcDbl3IZwQRvDO+CDbQ3TMx4yekfOyqMu?= =?us-ascii?Q?11c8cL2kSpI340gareXnxFjckNVIyfAactFIfEyReGs1mTFtUbW+tj8CgsPA?= =?us-ascii?Q?xbsbdKMF/JR3KvQMbZwOH1FW6D/yq0WLCrRsscfyigRGo1tnTtpYRzOIbqBv?= =?us-ascii?Q?3P/yteCcyv93fmuKXgsES7GARsdPQiU2HE06XqvapgQINo8iFZzQZtVGDPb+?= =?us-ascii?Q?NzERVC/7+3IBNJrRs7XMRxy2iia+MRv3VSh7dRRdSbRzgrS1XTI6RToczCRO?= =?us-ascii?Q?QppPzzwI1TDPP3H3gqx6hsJCUKd2RYqDqqVIElxJJ1kmCCkzWQtnZxMv5fVA?= =?us-ascii?Q?rZusIMq1ZrPlnKl6UGxm8iFd5cRxnjG0AtPy87z4GnezBCHHAuNn8zG19at9?= =?us-ascii?Q?8z7MynTroI85NZ2HUGqJIpJR/eWVr5PyQFHqVJNe9PFwM9MQPK/OPrx+MqB7?= =?us-ascii?Q?Pz2KIKpyTT9VzKVX0HhYDv34BSZja9AiRWmMQYVVSbxqeFfExKdmNcUNA6b3?= =?us-ascii?Q?pGJmu1atCfq+KnwXkO8w9jjxTnDnHdyrRbA3YZptdac0DNT8WdCMT9iZ/gYT?= =?us-ascii?Q?sTKvaFTl9ivvEzsW4VgTJUjInlO9lfFaousrixLFRJ1v6EWKYnquzBMIqrA5?= =?us-ascii?Q?S+XTaBbefrgCDXNOK4sWmUm0mFtwaUzYWnRl3taOqHmcgM4HQ2PGTok3ypSQ?= =?us-ascii?Q?2Ve0MY6RtELx2HZvi6tnIJd1bI9gA2Cknp91cSE+bdT4nE66B0vCw88u2wgt?= =?us-ascii?Q?MOfttY27aOcLAG2piEMT7TXNunMyxOUjw+Rmcq0cqxz7+B179brMr5H6kt19?= =?us-ascii?Q?ZcAu7zCiu5nRxdG00GX6yXP93LqU+ej67qOlE3sd?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: cf2aaa73-79dd-4a0c-e93c-08dd1e209b79 X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB7726.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2024 22:25:55.5832 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: uNIAAR1tZt9F27F5LBHwONtzhLe8DL/YBZWMR6eSDgFhuyYSpBYrkiQNIa6nGo1dDipqyWF2FnwvkNQol8AsTw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8143 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: EB6CA100003 X-Stat-Signature: hn4m3ytnrfogscppse5w4gynzu5i7wqr X-Rspam-User: X-HE-Tag: 1734387925-90594 X-HE-Meta: U2FsdGVkX1+MPRNFFq1oUmoTsQl3LojiVo6CeHFatGdmJEz16kkEgO/OrXaKVmNC6u7v2xaWrVet4fNYgk/VZ3JVvV3X1pIGCFXn3dn95wECYGYxu6wY79cWBfSXQBkhrWQ5egf7B3CfDdoBQdH4b+3axEJ2mwBKJ2in5bGIw9RrlnEnqOVofg0uxraFg5GyzmRp4y7b34U23CyPlReOuQE9HDOmwlyf5s3BKPgzP4QjGy6HR+Zby++mNP/y+xC6sxp8FW70S5VXhZ5ViHmNc+WhlpnlOctHUjhFTfWHFPxtarJDvgA2yJ45KXB5d3rtlkuHmbvG551lH1llK2gM0iayO1llYg5KzsJbKcfwj0ABwnt63j2BicZW8SRoUgDzYFUnOohVusHCyAKjCJI7OXIGAvQdmUi5UDTqvIt+3Snyby8MDs4f6TOgi0xcFg7yuq2TFkH0EFTSoifsQbaA1cFf+qCuLGTg8Rjkk0ElB0g8/Fd3aAu7ljMI4a2QUGiEZBEravlwvKrgU8GNXddRXpVa3yCQ8Oxc1k0qUmZD6CYdfu9gJ18RT3eHKcmrHKKLPsHRzVKGXmtRfbK2XSlpU7jXr1AHLO4QgsKPIpFgiq3UDhNzpm67WA/Tod8dx+BXp6YNxbBRLIrscJEoWYflWPHGcFZtbB/d2HYPW2+YhY9LT38/bykVTMKnY+WiqIDmdbXNXO374bfgeCLLE90VRY9/QyrjXl/ieBUskVLqUwlt7j75pS9NV0VxoUL+8QdxWzuMTIectWQ+lbKO6unCtQ7IfFI4QGRgI7P1c8TA2BkGGT6yG6KyTBy1NPEBFKu9mr67OUsPkohHor2WMvrwG070Uj764gaj0CluprNIRjloya6qAwRzJwUxqr0fBj7D4Y1lVVmNlYLoLP8pUtrpuBLlNVbPPJf0iGmr4Ks0hH23kRZv46EomeWbGsy7JNIUPYqnabEh+CGptiX5zj3 QhYIyXoN 2fOxSVFg7Iygqx8rbEVdFBySp3Zkx+LfOK0KqR9k0W6dzTrRohXlOH/6en3yYZTxDmqWGA3uTa57MZTxa409PeXG1UX2JXVuWTOx+GBJ1U+GV9xEScUDxT6GziHZd9Ii13kmIkgzyLSOzhzX+QcgraWa/u5YLQ8eRL+8drtJI2JGZeg1XTwjA82GLs2DAUe4eB0MvljsC96y+jYbbh+Y8G3qZpdUuFhUGBdSfM6kJuYa8hmeVe+b1Xkzg2LTHLRxElPDZBuV4SEvayT2mJal2130otD3zB4gQtgqL1fRgpZ3bUv7Ij+e0Ep1mC5I5xUIUXYCCmTCrRj5jjCUWSM3F3W+V2JWprxHBWkdHCMKXsIZK24Fm4u5SvV1duFvBiQrRUQEp22iluevgpMj/tEZIFm2Qa0nioyeZip4c12RSt52MkUwSdDK/u1Zk5fkzrjV2grz4LPdLZkzmGJj3rnRWFvKxYA== 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 Mon, Dec 16, 2024 at 03:53:56PM +0000, Matthew Wilcox (Oracle) wrote: > Convert from pfn to folio instead of page and use those folios > throughout to avoid accesses to page->index and page->mapping. > > Signed-off-by: Matthew Wilcox (Oracle) > --- > fs/dax.c | 53 +++++++++++++++++++++++++++-------------------------- > 1 file changed, 27 insertions(+), 26 deletions(-) > > diff --git a/fs/dax.c b/fs/dax.c > index 21b47402b3dc..972febc6fb9d 100644 > --- a/fs/dax.c > +++ b/fs/dax.c > @@ -320,38 +320,39 @@ static unsigned long dax_end_pfn(void *entry) > for (pfn = dax_to_pfn(entry); \ > pfn < dax_end_pfn(entry); pfn++) > > -static inline bool dax_page_is_shared(struct page *page) > +static inline bool dax_folio_is_shared(struct folio *folio) > { > - return page->mapping == PAGE_MAPPING_DAX_SHARED; > + return folio->mapping == PAGE_MAPPING_DAX_SHARED; This will conflict with my series which introduces compound ZONE_DEVICE pages to free up a PTE bit and allow FS DAX pages to be refcounted normally. The main change is here - https://lore.kernel.org/ linux-mm/39a896451e59b735f205e34da5510ead5e4cd47d.1732239628.git-series.apopple@nvidia.com/ I'm hoping we can get that in linux-next "soon". > } > > /* > - * Set the page->mapping with PAGE_MAPPING_DAX_SHARED flag, increase the > + * Set the folio->mapping with PAGE_MAPPING_DAX_SHARED flag, increase the > * refcount. > */ > -static inline void dax_page_share_get(struct page *page) > +static inline void dax_folio_share_get(struct folio *folio) > { > - if (page->mapping != PAGE_MAPPING_DAX_SHARED) { > + if (folio->mapping != PAGE_MAPPING_DAX_SHARED) { > /* > * Reset the index if the page was already mapped > * regularly before. > */ > - if (page->mapping) > - page->share = 1; > - page->mapping = PAGE_MAPPING_DAX_SHARED; > + if (folio->mapping) > + folio->page.share = 1; It also moves the share accounting to the folio as well so we could remove the whole page->index/share union once that's merged. > + folio->mapping = PAGE_MAPPING_DAX_SHARED; > } > - page->share++; > + folio->page.share++; > } > > -static inline unsigned long dax_page_share_put(struct page *page) > +static inline unsigned long dax_folio_share_put(struct folio *folio) > { > - return --page->share; > + return --folio->page.share; > } > > /* > - * When it is called in dax_insert_entry(), the shared flag will indicate that > - * whether this entry is shared by multiple files. If so, set the page->mapping > - * PAGE_MAPPING_DAX_SHARED, and use page->share as refcount. > + * When it is called in dax_insert_entry(), the shared flag will indicate > + * that whether this entry is shared by multiple files. If so, set > + * the folio->mapping PAGE_MAPPING_DAX_SHARED, and use page->share > + * as refcount. > */ > static void dax_associate_entry(void *entry, struct address_space *mapping, > struct vm_area_struct *vma, unsigned long address, bool shared) > @@ -364,14 +365,14 @@ static void dax_associate_entry(void *entry, struct address_space *mapping, > > index = linear_page_index(vma, address & ~(size - 1)); > for_each_mapped_pfn(entry, pfn) { > - struct page *page = pfn_to_page(pfn); > + struct folio *folio = pfn_folio(pfn); > > if (shared) { > - dax_page_share_get(page); > + dax_folio_share_get(folio); > } else { > - WARN_ON_ONCE(page->mapping); > - page->mapping = mapping; > - page->index = index + i++; > + WARN_ON_ONCE(folio->mapping); > + folio->mapping = mapping; > + folio->index = index + i++; > } > } > } > @@ -385,17 +386,17 @@ static void dax_disassociate_entry(void *entry, struct address_space *mapping, > return; > > for_each_mapped_pfn(entry, pfn) { > - struct page *page = pfn_to_page(pfn); > + struct folio *folio = pfn_folio(pfn); > > - WARN_ON_ONCE(trunc && page_ref_count(page) > 1); > - if (dax_page_is_shared(page)) { > + WARN_ON_ONCE(trunc && folio_ref_count(folio) > 1); > + if (dax_folio_is_shared(folio)) { > /* keep the shared flag if this page is still shared */ > - if (dax_page_share_put(page) > 0) > + if (dax_folio_share_put(folio) > 0) > continue; > } else > - WARN_ON_ONCE(page->mapping && page->mapping != mapping); > - page->mapping = NULL; > - page->index = 0; > + WARN_ON_ONCE(folio->mapping && folio->mapping != mapping); > + folio->mapping = NULL; > + folio->index = 0; > } > } > > -- > 2.45.2 > >