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 F21E4C4167B for ; Thu, 30 Nov 2023 06:41:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 25C738D0032; Thu, 30 Nov 2023 01:41:21 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 20B318D0001; Thu, 30 Nov 2023 01:41:21 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 087168D0032; Thu, 30 Nov 2023 01:41:21 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id EBDD48D0001 for ; Thu, 30 Nov 2023 01:41:20 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id AEF571202FD for ; Thu, 30 Nov 2023 06:41:20 +0000 (UTC) X-FDA: 81513673920.05.40D3034 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.65]) by imf19.hostedemail.com (Postfix) with ESMTP id 6FE171A0003 for ; Thu, 30 Nov 2023 06:41:16 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b="XAJbo0Q/"; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf19.hostedemail.com: domain of vivek.kasireddy@intel.com designates 134.134.136.65 as permitted sender) smtp.mailfrom=vivek.kasireddy@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701326477; 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=/qTkTui+/qB0o9mcC0Lt2WrWNniv8g25gKJvBDHNlgU=; b=3yg95E/HBhdstVPz0lUR0UxIED/yGBSzPjKgIwQzrSzOV9OYsNOiPwe8R4a1Voesh97lFu vEnFM4RoRL5bnKHt3OHZb7vyYcdndL6UbDlkk3vZrj7BJRVl+Ohwllz4dBhWD31nom+ld/ b76uR9zRLlB4p7orPDXi2k+QLY0Ct3I= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1701326477; a=rsa-sha256; cv=pass; b=mCj06FJI/kpcd2cLGkyvzA3w5Va/NVUCtmbzr0pMMoX+d6pjOoOHV6tsaQK/T3pdzeI1HV eOrlbn5rOlXy39yOMyf0lme413fvyPS9QtaaMZpCi9eU69ETkPurCDP+OPUXxM8Eq67pmw EueUnDpF+ARHPhgg9cQ6l9IfZRwISC0= ARC-Authentication-Results: i=2; imf19.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b="XAJbo0Q/"; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf19.hostedemail.com: domain of vivek.kasireddy@intel.com designates 134.134.136.65 as permitted sender) smtp.mailfrom=vivek.kasireddy@intel.com; dmarc=pass (policy=none) header.from=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1701326476; x=1732862476; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=KUzIdPxn4esdezoMz8RoYpiUEe34Y8Jf5EnMcbMPkU4=; b=XAJbo0Q/dfVlpZLZpAeY++12PcLWeRyR2alJXg7qzrD9aq3ynVAOh9oA rQ+fvMJy4XJTbtR2Zyohv4M/DOklTAbj/Lv/mSzbYoxFojR/zBdDvj98Q 4YpdJafXCJhNFHU8499bTuUaEvCE/hLFX/2RJceFkOVOlF5Z5mYEoZ4ns EAY8HdVkN5+WKVyMHEMeAHQWWUiHcOaW1l0OU5xhGMnOT/4/ZItKgGZsy nZmZaIpne3yJ+8vnwzj8lmYB7ykhjjYhLPicopxgtaAoQg1yfYRj0ZSZ3 hxRs6a/tjLVciFM6KSGmynUbqjLmOa+vkDCKFrHOuO5o1EaFenJpnwXEE Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10909"; a="397170853" X-IronPort-AV: E=Sophos;i="6.04,237,1695711600"; d="scan'208";a="397170853" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Nov 2023 22:41:14 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10909"; a="839705080" X-IronPort-AV: E=Sophos;i="6.04,237,1695711600"; d="scan'208";a="839705080" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga004.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 29 Nov 2023 22:41:14 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Wed, 29 Nov 2023 22:41:13 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Wed, 29 Nov 2023 22:41:13 -0800 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (104.47.73.40) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Wed, 29 Nov 2023 22:41:13 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UwiuBmM7DZ2L34/UtcWxaQkMwgn88ahYmSZkFlZmBNbsh1xGbBVfYtXqSoF6mxtRXnWPsi2V61sFr/zObyi6syuVM73Pxo8xL6+9UiNHTRuETayeE6T/e7NHXbcgo6NRMDIXrLk69vltPNICZxXhGjRnpwIoyqM1693kKB44uG8oayuSGDreczWfVG4QMVAjiFa4OncLAEiUljYl1Ot+uQM4rHfT3jgUssHeNoBKzuelQ+SDiwVQCKV5iNwJlV6wKKEncbw9T2tUkgGmu3fzkeZ65BsphvvIlhAiQLRKLuJ7CBlz9HWPw63UYmpoDfCm9g0fWO4gc2KJMkMp838x3w== 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=/qTkTui+/qB0o9mcC0Lt2WrWNniv8g25gKJvBDHNlgU=; b=ajotN4sf1HBPOCHODLJhKgI2IaMkqT2RHL36wO8++IPFtgBn5ltD81NoASw8sJ7ZocwUS+U7lT0b78HNhEwlv4naFq+Hi5U1IT0xpGkYm733aaL2vZXA3Sh9P40vy0aPv0IqSbXeYJo3IQpEvAnk/EgCPNN//Bq/JUrR4dsqclxnRDaGekwJzZM2Bb2v3ujfxtTT4HH3qalnkjPvOVDFH5qRErjhIyz7uvS6RhKSoDuW9nMbY5lnsloEMeu8gAl4YOJtZwNZShXqxyYukVUY4zS9Cm7luWDyHtqks/WTGPcb4uqT2Pc7FiL1yHe1vp3f4sZV5UbT+LPXM8wJLug+3g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from IA0PR11MB7185.namprd11.prod.outlook.com (2603:10b6:208:432::20) by IA1PR11MB6467.namprd11.prod.outlook.com (2603:10b6:208:3a5::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.24; Thu, 30 Nov 2023 06:41:11 +0000 Received: from IA0PR11MB7185.namprd11.prod.outlook.com ([fe80::b6a:cf27:4d2d:1df4]) by IA0PR11MB7185.namprd11.prod.outlook.com ([fe80::b6a:cf27:4d2d:1df4%4]) with mapi id 15.20.7025.022; Thu, 30 Nov 2023 06:41:11 +0000 From: "Kasireddy, Vivek" To: Christoph Hellwig CC: "dri-devel@lists.freedesktop.org" , "linux-mm@kvack.org" , David Hildenbrand , Daniel Vetter , Mike Kravetz , Hugh Dickins , Peter Xu , Gerd Hoffmann , "Kim, Dongwon" , "Chang, Junxiao" , "Jason Gunthorpe" Subject: RE: [PATCH v5 3/5] mm/gup: Introduce pin_user_pages_fd() for pinning shmem/hugetlbfs file pages (v5) Thread-Topic: [PATCH v5 3/5] mm/gup: Introduce pin_user_pages_fd() for pinning shmem/hugetlbfs file pages (v5) Thread-Index: AQHaHdvlPZw62HxLiUyVPBViM70ksLCPemOAgALBB/A= Date: Thu, 30 Nov 2023 06:41:11 +0000 Message-ID: References: <20231123064443.1035709-1-vivek.kasireddy@intel.com> <20231123064443.1035709-4-vivek.kasireddy@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: IA0PR11MB7185:EE_|IA1PR11MB6467:EE_ x-ms-office365-filtering-correlation-id: 5ffd7e34-86ae-42fb-9d3c-08dbf16f57b1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: sS07vKiHxEqobgIiYIlGrtftIR6c9L89ERQEHu+VVb0npVQgctpfuFNXugTt+2KJLgzHUVqUoXQfqjCvH8/0wcZgt7e3jG4ItJ4ax3mbFT9CpjmXFmUhh82cS+5iVqSxl3aZ+me9csCCYJs1iUPmfF2dK6BTOcaI9ETTmmdgKe36YjEUBhqqwmtX7kZ9JuhOyf8leAI9GwhZRMglvRAy7FJFZmQitFmdA6s+G3Wzz7WRRNZc0wNAOKSPFwsTk0uVzhkgD+jBoqHQaT1OR/3Hri68Cvm72/kvBoDzDdkuLNZ7eIw+ifyjcfAxNF2TimpiFCS8Cj9MWEW6Q1cyVo1nOQHTfI2w/qtpmeQ0PNpaMH+BsIxim1DjVBYC1N4MqQw2T50vH6zHdRKK7U+LIrj6lFNncSQG1C6fbgeRBBSuBkJiYLGsbCnJwJkqkeokLTXHASWhCTbl0lG/b4Os4zqyGo+vodHabr5aSGWS+SLK86AHHGx3jWAisqERGg5aIFWAoSwdOlD9GqB3c3oX6VEZ7gEGeYkM+TfXgC7Hpq5oHxEgUXq38NGG9JWXuL5VeEA2DQ/04JOiR49b80G3Y9aCUdZrljp/N6Q8FCnuHv5o0bXWgxbKhLxpfrV572UuQmdgZoOkiKInUcnWph+hj4Bz2hX96dUs9D7Rp2YqeMOIcoQ= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR11MB7185.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(366004)(346002)(136003)(376002)(396003)(230922051799003)(1800799012)(186009)(64100799003)(451199024)(26005)(83380400001)(6506007)(7696005)(9686003)(122000001)(5660300002)(4326008)(8676002)(52536014)(8936002)(41300700001)(7416002)(2906002)(478600001)(316002)(71200400001)(6916009)(54906003)(64756008)(66446008)(66476007)(66556008)(66946007)(76116006)(202311291699003)(86362001)(33656002)(38100700002)(82960400001)(38070700009)(55016003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?7ZhQa4BjuZNTQMfVgnSf4c1DqjTTdMKQTZajrYR3Slsomb+8qCUwyI98Dzoi?= =?us-ascii?Q?YRe4ix2JTh0xf2AhYHwFgJcFK5A20H5noJaTF9I0zND3WfI7bZ9a4ZNwBN3v?= =?us-ascii?Q?sSYvWpZEFxlgrvRUbc83FikroppeDOGGmOUt+1aG+hkzss2OYWnZJ9CCDEDJ?= =?us-ascii?Q?DlW6adoQ747wwhPg7FTx/Wy3cDTm5NiFCRR5sg3beLWV+4vYq0QuMfV3M7Jl?= =?us-ascii?Q?jqyC9KxtfzHoK16LHQ96cALo6C56Pfb5suo7W2ff8f0ksPJN7KHygqKK5WXe?= =?us-ascii?Q?9XHNEZoMLtRKQnpEnH7WAX+WhM7RJ+kdt7zAJWARnhGYWnaMIpmJeR4KiLSe?= =?us-ascii?Q?io6EHzhO010C/+6J6qSQrlGNZyPSJpgfvBEP41EiDzjNppBP0Bo6mnnmAvh6?= =?us-ascii?Q?0tB5HRD1781PeSPNvN31btO95H+NvvWQHESCysJcfp4/68cR0v0RU3O6Q6ao?= =?us-ascii?Q?xDt7Kh5uXJjtWVUfdfLF0RlFKHkD1MT38U5n0tY6nfs3HZuRDzU2si3VLzB+?= =?us-ascii?Q?flF05RlCpIkwwKq+nZM8KdXDtR+KAQbMgGu0n5mq2G4LtdYcFqunTh77gSUV?= =?us-ascii?Q?najqKBTWRgwgvlYNFYKA/CDhJERc70kSnkiOZMry6zhG4PNCpSsyT9hOG0b9?= =?us-ascii?Q?zdkufmK8c0Nwa1/ggoO1ED1x6Lio+oEuj6mVWVg7FGO1j3dl7CE2PnZOBPyG?= =?us-ascii?Q?mNjc1ddW0HHzNzLelJgSWhl7OFvltCJVwlCgd8iaRyuSR1HuCogu4WPPcBR+?= =?us-ascii?Q?O6Avd5HC3IUWzNfTy4bXjvDwYCO9KXK1pIQV6F2ShGqpZVYklRygIrLpBo5v?= =?us-ascii?Q?WOJ+gqM9fCTa2SOCN0PoVOxMxduLign/LVSX+tGwjOjWRLrxOQdZdIBkjEH9?= =?us-ascii?Q?DInLdq7vaCdOPSDbv7TB3OQV0Af4+sEWuCzHLEkssbiRSKe1ard0FTDS0bGj?= =?us-ascii?Q?YSxWuNYPGy24IFqHq0+S8tXz30nusitEaX9angHbof1ztH/fpNhLdielTgRm?= =?us-ascii?Q?FbRiFfFbWOnEXOxukmnPp7YDagZpwPRpVngO3Fd2XHjNQTUUYiSaSSespz48?= =?us-ascii?Q?pUqxeQ32cn5yGDKE4jikUVNN9LV3GQbevl1FLtmMUeAnPCzIUvx4HgCjMqYm?= =?us-ascii?Q?Si0/cAR1AvoZugCXBIXcYFGFStwfxbehtHvhocqVbwb16lbxmKHCGJCadS1j?= =?us-ascii?Q?NyhwoxYfN2XnPRBFQ2VwF99mu5X7fFN1bc8QIGy9AQ/v8sqfTFHnYjqJrFa7?= =?us-ascii?Q?44ANJV28+Qry+Ei7TQxZGB1tSrmCLjjRtHLTlTdwpvDT5Uf7PvEgMv3Hc/SU?= =?us-ascii?Q?/3mIYV1zI0QtNCfW6QqlOVSAgvzh3AT6a+P28/chUeUUnnWNBkeRiUvkUkTb?= =?us-ascii?Q?juOHQnCaFazfnalevJ0vc+tgOQX5z7bZEmzW8o2BxkmQ4K8gSqi2ai3RmAE2?= =?us-ascii?Q?7vioQnuYfYB/rWv4BH/d3DMBcH0q0HD3pxNktsPrePHD8FVeEcdg1vxWqOlC?= =?us-ascii?Q?HSuB1Euvwh0kHbE1pOVREett+GzkW6MRDfA6yG2TN/o9965thjddrNiYmWhK?= =?us-ascii?Q?xFtKdM4s3VoD8hLPFcGmEGEOVosJmb1GRQum0wB1?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: IA0PR11MB7185.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5ffd7e34-86ae-42fb-9d3c-08dbf16f57b1 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Nov 2023 06:41:11.7615 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ozBynFmzqHj5FLUOunHsqwXb6/Mg1HMIfoYs6eOCH7Y08zx2emW2T56cKqz1zLCCKUCH3gTGFjJQQgxaHpGbBAcsSlINICHFgnKKc9uf1kQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB6467 X-OriginatorOrg: intel.com X-Stat-Signature: 3co9sd38em3d81fdn3jyykpgcrxjcaxj X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 6FE171A0003 X-Rspam-User: X-HE-Tag: 1701326476-638971 X-HE-Meta: U2FsdGVkX1/H36BZF9r784B0rarGvaZiWLSrsCV6gPl/HFSNYrSwDXeZNL7CSisB59y6kEEzG0lfxE96oPMY2Y6zWgMzZFzCX8fEZ7q/sbEMt9/4/odd/X8J1AFo3RTvJ4u5KpvbQ1vraovXefZsYdOArKQyXaAW6X0sAA7dGs/9B2HCiDXzqKB0Wz51rYAXQ3r/yPYfrj+Ih7909RtbtDM3R5/1dF/OVq3lsp6W9ZQm+faQ0w7zc470dqnE9BM16ORIBFgeDcSLqdl6Rr/e8lDD34bAR/DwnPzXCvZhU644LSI+YUGZPTQ6f7kYIXNrccHDJazc13RVP3R/6g0fa0HMe0vmeERUbpNocXi2BWbZrjo4R2z/cU6f1zS1atd9O73ZD8ljaPbt8cQFHwYQGwQY9WgtwL+VvB9K+MI9GJtqr4iji64X7aOtS/ic6eecjMl/BoAYf5W+yKGF/SG+ngTHvDbwgMMoXLdLl/KnVMkL2xZdd7/6X0+pxkXXSLFZD3dWZrcj0LK0uRE1W6NkvnpXNbER65YbmL5Dyg4EtAFs/O/3aw6Gw+ysh91boda/5fRbZSZCeTQ0tV51/v/bk90LLsJxpuTDNRisHiWKZMhJKGiymdmCHalihGICV3Kh0eXhpM3z8X/FzVXpVavDRGjQi7IvKNsKa7hR0tr+MIUP9sVP27RtUi7E63UXP+9SZ5YZqfs55amFB4W3I2tyQabxhWVs/Ipb5kAatN/zaJvZEZ/+bElFIx9KVKY49z0AUa+tdxatwJxCsWsAUe7bF1GlGwD8JpMzA6rsPNTvQcs/31wd4DEvsNOmTtBATTZS5CEGKkbtpTx7daiXv3C3H/ftg+EP9KoPSj+cj9BAGGB2BA+I4k3kQEIJYBTxbVwKZsCuHJJXVeuy6fcUNBeP1QZrsEbfEer1xAgPCRu5heIW1t1Qlb+hEK7onzxYoOLbHyYRKd3otmOzKzR2aPC 6b3J9THs yQU+ZcCxSYeQU40x17sJ9otba+ket8RX9NaD01oScJsRiZvz5x4uSLilrGabbPwB76YMGNS4nu1vsasbFru3s0EjRQ/zQB5F9qMiB49/6+qLX0NjmU8cimOABuEMrOTC1FDUO94RGAXUbIQ7aWZiHHNwxGT/tb9qdM7LRMi99FtIW5Bfu4hZ8vNQCgAwwFXprFzG4kmxRH/4s52m5mMAUQowjdb8rwc1fngI8IDz2fHOTjlIEI+OzD7IVMaiJgTdtXHnSDmNPHD0O8ESXyDnEEFQD4drelqifhvJo9kcAZbK+oxBgDvD2qi7UYoAhpDd6ojXF6QZ/rbLuZy1RNqyudS40v+ZxUCc7shEzZjwxpwwlwBbOwSkP7uIRzDk4JImLYD54 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: Hi Christoph, >=20 > > +static struct page *alloc_file_page(struct file *file, pgoff_t idx) >=20 > alloc_file_pages seems like a weird name for something that assumes > it is called either on a hugetlbfs or shmemfs file (without any I see your concern. The word "file" does make it look like this API works with all kinds of files although it is meant to specifically work with file= s that belong to shmemfs or hugetlbfs. Since it is intended to work with memfds in particular, I'll rename this helper alloc_memfd_page(). I think it also makes sense to do s/file/memfd in this whole patch. Does this sound ok? > asserts that this is true). gup.c also seems like a very odd place > for such a helper. I only created this helper to cleanly separate lookup and creation and to reduce the level of indentation in pin_user_pages_fd(). Anyway, would mm/memfd.c be a more appropriate location? >=20 > > + * Attempt to pin pages associated with a file that belongs to either > shmem > > + * or hugetlb. >=20 > Why do we need a special case for hugetlb or shmemfs? As mentioned above, this API is mainly intended for memfds and FWICS, memfds are backed by files from either shmemfs or hugetlbfs. >=20 > > + if (!file) > > + return -EINVAL; > > + > > + if (!shmem_file(file) && !is_file_hugepages(file)) > > + return -EINVAL; >=20 > Indentation is messed up here. Ok, will fix it in next version. >=20 > > + for (i =3D 0; i < nr_pages; i++) { > > + /* > > + * In most cases, we should be able to find the page > > + * in the page cache. If we cannot find it, we try to > > + * allocate one and add it to the page cache. > > + */ > > +retry: > > + folio =3D __filemap_get_folio(file->f_mapping, > > + start + i, > > + FGP_ACCESSED, 0); >=20 > __filemap_get_folio is a very inefficient way to find a > contiguous range of folios, I'd suggest to look into something that > batches instead. Ok, I will try to explore using filemap_get_folios_contig() or other related APIs to make the lookup more efficient. >=20 > > + page =3D IS_ERR(folio) ? NULL: &folio->page; > > + if (!page) { > > + page =3D alloc_file_page(file, start + i); > > + if (IS_ERR(page)) { > > + ret =3D PTR_ERR(page); > > + if (ret =3D=3D -EEXIST) > > + goto retry; > > + goto err; > > + } >=20 > This mix of folios and pages is odd. Especially as hugetlbfs by > definitions uses large folios. Yeah, it does look odd but I ultimately need a list of pages to call check_and_migrate_movable_pages() and also to populate a scatterlist. Thanks, Vivek