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 0ECC1C0018A for ; Mon, 6 Nov 2023 17:48:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 776FA6B01FB; Mon, 6 Nov 2023 12:48:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 726ED6B01FC; Mon, 6 Nov 2023 12:48:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5EF8C6B01FE; Mon, 6 Nov 2023 12:48:18 -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 509C96B01FB for ; Mon, 6 Nov 2023 12:48:18 -0500 (EST) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 192CFB5889 for ; Mon, 6 Nov 2023 17:48:18 +0000 (UTC) X-FDA: 81428263476.08.A1E610A Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2050.outbound.protection.outlook.com [40.107.96.50]) by imf19.hostedemail.com (Postfix) with ESMTP id EC7471A0022 for ; Mon, 6 Nov 2023 17:48:14 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=DMg8cls4; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com; spf=pass (imf19.hostedemail.com: domain of jgg@nvidia.com designates 40.107.96.50 as permitted sender) smtp.mailfrom=jgg@nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1699292895; a=rsa-sha256; cv=pass; b=Y98z1gW3gV4+qbuovU3UT8JYCjxa6+bhfPzOaLpwQ12Q+ry+c7OLJ7Qi9MUUYJgILxZuju jjkV4XjXM9qg13D7H6lC61gHeRgNlFsM2CaUUwvkcs5z3Ijmlj+NWlelzThcvOUW27NR+6 gwuIgbgNt4QkzpTHNj/zz527Dyr48Zg= ARC-Authentication-Results: i=2; imf19.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=DMg8cls4; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com; spf=pass (imf19.hostedemail.com: domain of jgg@nvidia.com designates 40.107.96.50 as permitted sender) smtp.mailfrom=jgg@nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699292895; 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=V1JwcJtZ1IlQN7oq/ZmG3+HAd8xRsx26kGSj3ESxnwo=; b=dKGcBdZ6IDJdPfsf04+xIEIo4MvYqvY8oiACByIwQAqCSDE38Q1CIq33rQOfItLuITV1nO pBVFmMN+Za4ab+gsw/ksMGUx54OxYZpVgFjl8H93RVKeQE3acRXE2PzodnPslU8Qd/TvHo 3R4RATJy123q6qK328GHUN0buQok+RA= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lAvLlKtLzdOoF60qQVCvXpYP6SpiGbNqjArL3f1BtkMzDlyTVSuaWTojJcIKy/ZkUuWN6uVQoHUvi7EyAgDTkgeNKGT89DQZ2S7M6ak2KySf86Mt5ldHy4x3fBsk5Yc24iTX76qbtYqCIAAoVNUK01CVBCi/Lj+6sKVZvcRdbpHrcwqMx93AZxpDjdELSw7UIjkHJgFIAySQUXA8P1KNEAmpuRKeafjj1d32BjG6Xr+ECYTMAuCYxqxkyKhdd78KRI6sImH8faVP3WBo/zNjLOVZ9ENDO/1SN/s0K+xw2BUKi0Lsis2bIpVcTtmqfwDyhFZd3pCoV4H+nUUhQy6Dyw== 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=V1JwcJtZ1IlQN7oq/ZmG3+HAd8xRsx26kGSj3ESxnwo=; b=mH5HdeO/t9CzJbwTE2fRkNBfYERiBhOJHiZCH8+8nl4CQ28kdcbzH+tjV77GjZXuuTN2VeTqtoFz1/XR6XFEl7p3dC0xBAkIqQf3DypTtSopDTg1sCfTkkbYeq9G2jnB5ct0uIpaycsNDG+M0guv7WH/XdNV2oFKAwmIyV2MaAV/iB4IFRs96CTI1uG4bjMNRYzKHE7ira/uN9FNuHpEt0UdlPz13V1eGSgFzvqoTFKWjg7hMkrJF9RVR+u2RLsMZOoBtUE09ykcr7mGJTqQoE5fHeP0ubiOCeZuqmVmZkGc3PY86OyBVtgzlsklFuolHKCzzuDzfpNRJTso5dgnRg== 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=V1JwcJtZ1IlQN7oq/ZmG3+HAd8xRsx26kGSj3ESxnwo=; b=DMg8cls4b4TEj1dNgi2UCiHSmjJ+55mPLzCbFWSgD8ImN9hNqSWGiVUZ+wzlJG3uY5Y/upGDz2zHrrx4gGwVc3qDyj7LqLG5hgWEH1Q738byYINrdGylC/y/a0QFs/iHEJIyPpJO8x3ZpxUEYs+EuLOqQWh21wJuftL2725TWeKPBN/tc1MU6q+0EhKHk4GYmciJMEXNyF/H1T1mgB/5tHyeGurNkXSGFWommpLHDS/C5WwUiBoaZkU2wblS08BfqDZ94d31XNT0KOyv160lnmqxcnTNZOl1FUV82fzxu6DkYx3zZkfqjS3Mar4Lm7Des3g7CmU2RYn2yE6dtv5lWA== Received: from LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) by PH7PR12MB9256.namprd12.prod.outlook.com (2603:10b6:510:2fe::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.27; Mon, 6 Nov 2023 17:48:12 +0000 Received: from LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::b53a:1092:9be2:cfb9]) by LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::b53a:1092:9be2:cfb9%5]) with mapi id 15.20.6954.027; Mon, 6 Nov 2023 17:48:12 +0000 Date: Mon, 6 Nov 2023 13:48:10 -0400 From: Jason Gunthorpe To: Vivek Kasireddy Cc: dri-devel@lists.freedesktop.org, linux-mm@kvack.org, David Hildenbrand , Daniel Vetter , Mike Kravetz , Hugh Dickins , Peter Xu , Gerd Hoffmann , Dongwon Kim , Junxiao Chang Subject: Re: [PATCH v2 1/3] mm/gup: Introduce pin_user_pages_fd() for pinning shmem/hugetlbfs file pages (v2) Message-ID: <20231106174810.GI4488@nvidia.com> References: <20231106061541.507116-1-vivek.kasireddy@intel.com> <20231106061541.507116-2-vivek.kasireddy@intel.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231106061541.507116-2-vivek.kasireddy@intel.com> X-ClientProxiedBy: BL1PR13CA0341.namprd13.prod.outlook.com (2603:10b6:208:2c6::16) To LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV2PR12MB5869:EE_|PH7PR12MB9256:EE_ X-MS-Office365-Filtering-Correlation-Id: 895a49e0-aad7-44c9-577e-08dbdef08b7b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OTXw0wu7lRsR42jgcImJp5GgQICjiQM/6N7IVl1sayNreeE9nhOXA6NA4zr/YV5L4/weCgNKWqyvuUpEK5lIx6+icMYtTPvetY7y/b5sj/40XjIjl+r03JHpvidVdkLHVbfbFTkiGu2KgXH4mOhENEiRWZqeBs69jRT80uVW8/9BBboBX0cJyvGZPzotoxZJ6+53MJupf4r7xuNoKuqVViMvhWDzHftJbk1Wc0VU6/N2ZA4N6I6k6Gw/3+Zp3iNXKPpF33HOPbGA6Clqz9KjYN6ug1wdZh8BSlznlza/6UseG+a7CAcA0RBfAu25QOnbtc9WmtMwgXup3akjCPOiBRYovD9kfVC3QDxrZJQKHdxEPtFwPmnhMwTC19Tw7Nfioq59MWOnK919a6fgTCOp+RjkwKBG8AdJepEIt83PCnVNApsLyf73m/KbROGZ0CbQzSFsddt6XsJrs4Qr8nkmejmiYhhVP55y/1sG5a+sL11osTbX3Zf6TtUlKJxt4vFPZ4TmsiBFOSgPRSflu/7jD+A7BNJHZIoWK7BInjDrQCueZ27QUyVnI229oEqL2ZBg X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV2PR12MB5869.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(39860400002)(396003)(136003)(366004)(230922051799003)(451199024)(1800799009)(64100799003)(186009)(8676002)(1076003)(2616005)(6512007)(5660300002)(26005)(6486002)(478600001)(36756003)(66946007)(6916009)(66556008)(54906003)(66476007)(316002)(6506007)(4326008)(2906002)(38100700002)(33656002)(8936002)(41300700001)(86362001)(83380400001)(7416002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?CvaJFK3MzvJxnf50iCOkZKOfUysSGVzY42R4GFjt68QgAhAi4RXqo/3fwIEm?= =?us-ascii?Q?zyvNJ/BOkck00fI+aSzfbEeQfCPzqQ1GWnMES9j04C36vqO1lFJZ+uMomndb?= =?us-ascii?Q?qFIYgrDCR4fRd4d9Eds97YNKYR3hCt1ffwfmsp5ZVQN3g/+PNIVGnqYDmLhB?= =?us-ascii?Q?crKZhrpUpTMGN0uV3nXRjjC5iwQg18RdOAiqmRPTniQOcEyzY5531EXvDFQX?= =?us-ascii?Q?Z7FndQYxWJBu7uPqKUdpl0PLpVw5o4ClQgVHY6fqdSNfbpLHGYvEKy1Py3Pf?= =?us-ascii?Q?oXzVB2w+WdhLr+zxCVhdkMZ6GxQEAWh8TMGznRcC/uACl4aHIBPds0nl3d3C?= =?us-ascii?Q?2LPMPkan80QIBRZFVDi20asfyyZl65ufhNwWG+6ueCJ4eWrtGzGcI8Uwn5sA?= =?us-ascii?Q?Yd045zYp3TcmrAKQZPPpWSgBuNUaEyY5kavuWf8460QaonMu+GnelYLDcRJV?= =?us-ascii?Q?wK+/mmU5er3GwCaHGBu9jmkHSXkBPtdVYxDaFYPjGf+4TVsKkjBdGTsKX6KE?= =?us-ascii?Q?UOef9rv6Wlfv/5hMQx+l0ocy9+JRfGAJxTvth26x3rw6FfPFsd+0s8Bzp0LG?= =?us-ascii?Q?Q8VVvuXfVLoe17eouYjdIo9E2MNEWXfvR17Ia2E6OYWC5H7zGXjwin/XYXmp?= =?us-ascii?Q?fkeokK0H/rU22yFoor5Ql0OPxE6u87nLfz1jgTQUdJv6wqipPY38/47J0BNw?= =?us-ascii?Q?+Xq5Eq+3SredanC63CdmlUdGLR0pq8P1zGwy/gwFdybbpG0eFmu+Vbp7ya07?= =?us-ascii?Q?1Z/L0LWTvSqyMVsHg+F/hQWSRrNZfrhW1ugyMa9EwFqf2/5UEjglCV59qYZh?= =?us-ascii?Q?pEsqCjiY1Mtby5ztNjEaGUbPsDcAKrLdH0CzRXqJXIJsdjwDa6uqSKWfZONg?= =?us-ascii?Q?bTwJRsF5ndl8sOxFdvCFhyCXFptHQlFTBWUsB2CQjkMlx9Rdmd663ROVmGNw?= =?us-ascii?Q?N6iWWQJ8k/MrL5NIJuzT0zQBMj/or/cJ+iDAYRP4TYgs5+Ma/VgsoeNHCwgh?= =?us-ascii?Q?dap09uI+5d/U/oqhFY4AlG251Gq/fhdDNvOsGYbMv4Kfu/8JruO2BfE1E7CV?= =?us-ascii?Q?D4j5s7hIbyQyoTPr4XYb9nQoBR9HHo72CH7Ta0jtums2drezQkk9bYyD0xma?= =?us-ascii?Q?+Dm+86AAgbZXDTWWbu3sZUxeDwdFQv8Bn3BFu78Lz7E5QPwmq4JCxHvnROyz?= =?us-ascii?Q?iScJuk/3TYtq7s6VubEJN/ldNty08tftiedDh3DIgfO2RgXmU4PzrSEUCu57?= =?us-ascii?Q?bVpvqOUGf1rLXFJ5hiUuVNpZT4GJ3QcLZSqAcsxSVPeSp3RR0B2cKmRIOunL?= =?us-ascii?Q?o5h5lrjM6TGNRwKkzLdfgfkc51BwEp5nc07IpgPT0LXLgymfRqUzvWr2CWGd?= =?us-ascii?Q?9KGBGM4oTvApYNtNBOXofnlQhnpTGmTX+cUFmX8IhOZVfZDodlkgyXobej1K?= =?us-ascii?Q?zEi22UQi0LdpZvNChPe5UtN5JHJRJ0l7kDHX9+9XlTifJa4LYBm5t7XVnwE2?= =?us-ascii?Q?8JbxtR9onk9eohKTFEeAlshVjQVso+YNFpx+x0+7I+ikFSAWD6z8trVnBNoJ?= =?us-ascii?Q?70Wo4y+CluweSOIj6/FfCJ263MLO8+L9NQCGVlI3?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 895a49e0-aad7-44c9-577e-08dbdef08b7b X-MS-Exchange-CrossTenant-AuthSource: LV2PR12MB5869.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2023 17:48:12.1131 (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: dHWAAXrs3NsGqFFRYiHjbvDUvvnlcYQN1I7Pi4UNCdkvUkzb+OvkUGGHuammyA/T X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9256 X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: EC7471A0022 X-Stat-Signature: 5gj7be65k7ikjdtbxya6rc1odmgza1zw X-HE-Tag: 1699292894-986068 X-HE-Meta: U2FsdGVkX1+h1wIQW1kCXNPNZaiNwsOc5U0kvzWFjq1OmOHvH1TAzOVHa8KFSGx7BTqT5S4WVyut2RsMaIh6QYCwTeUJ4cNpCQm4N8RB8KARDBfwsn2PLGWLekQVM4rtPQbXl7G4RdhGomHvod/wcMVQ2YwgLbrsqDKzIfwYAU/b1vYYGOL8VD6FZBOtk4iN74FiUTHpHnoI7BLcEm/vCDKg6ts0n8QFqcoe2s49Jt1QgL2763CdwzOOVYfgt6OMg23QdYY2YYLVnvsFdjhZbGYkAyQb82sj8TC3tN3JLGYisJZMutcN2s1qqtxlQrO/iXReiyvU/6434bfgoqTrvGFeJ6J7k/fWuSMTp0pSWQS6M2h/URKehFPCLSSfjk2rERnePh1XM/ZaD6+QxGm55Ctoeaet2m6FcZZqM4OMk5YAcvkd2zTZY3KtqcWSBj4xigJwMBTdCrq6w+0F4sIfWHpMF83uH0u/kIuK26Y8OOA3WOlAVkBywZYpPajhtKKH+Xnahg+0ysWgLw8bTbIgKosMJ5rIcHCwUGrPfc+u7QmlCSb4L/IZmXz8Qq6jPYMQOpsiwlKgW5zREBAZnu63AhG+nw9cEXHr1Eeor1oRw5IUs8vELQlwsTy1pE7jORAnb8wjIVxaE6B7tIH1K1AtNJgtLlsUy78GpUVDMka1k7J0mndRiGxsJ6zzOMeqtKEipcJ1pLGyAflTDrLN9U1IeuFi57ePa/hgfV11eBxVzLSmFinrrHYFPILHLERyeybRhSS4nxC1SUNDIOxkQxTUlDjP3LLR/CQjo+PwjddUSvWg+eYYcWHr9A0G+Is5jGlfRIZbGfU7Ko5eA178BM1FcJvLEMCGNTGLiQi63fr7sxkzr1o+zK1LMpTy4rbKPXMUoeAa7opUmzYRu7PCiRruZUtxUZQICFnRRSkHhuNCgZN6cDf+863Tims5j97cEyaoumClXqdQbEyW7Hu8dsz 5R65GtQ6 tuNPfgIkEguh5PiAP0Ng+evoQStYdUrcvN7gubNmUYodT3TtairVkGGFzflMvcy7TMdZWOBsa4+UYSNhwnrORCfaA0Ze7S7PMdcV9MdjtvLLdcV6dwSCtcBy66S0L4EvcHQ6qZmF7kEA5YLe+RBPSvE3X5/8PV5UvkQLQklk8rIkIVQbRUnsCXBaDrAVp3i+w1ULV4DniKvwXT2CT3KO1wSo4rU8RnAWwXOe+tMCACQKC+T+QzTMTGj/36rTaontyCWh7DubdEdUJ9y0OUfqqkPuGHup5rZz5ULXhUdkW1LAWuugv82qI+zP15IN+dzkxI01ejqSw17R2lFz8jpXfxAqQR72yPe1oXkhczLS0a6v6ts6K2t6ZaWcuwg== 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 Sun, Nov 05, 2023 at 10:15:39PM -0800, Vivek Kasireddy wrote: > For drivers that would like to longterm-pin the pages associated > with a file, the pin_user_pages_fd() API provides an option to > not only pin the pages via FOLL_PIN but also to check and migrate > them if they reside in movable zone or CMA block. This API > currently works with files that belong to either shmem or hugetlbfs. > Files belonging to other filesystems are rejected for now. > > The pages need to be located first before pinning them via FOLL_PIN. > If they are found in the page cache, they can be immediately pinned. > Otherwise, they need to be allocated using the filesystem specific > APIs and then pinned. > > v2: > - Drop gup_flags and improve comments and commit message (David) > - Allocate a page if we cannot find in page cache for the hugetlbfs > case as well (David) > - Don't unpin pages if there is a migration related failure (David) > - Drop the unnecessary nr_pages <= 0 check (Jason) > - Have the caller of the API pass in file * instead of fd (Jason) > > Cc: David Hildenbrand > Cc: Daniel Vetter > Cc: Mike Kravetz > Cc: Hugh Dickins > Cc: Peter Xu > Cc: Gerd Hoffmann > Cc: Dongwon Kim > Cc: Junxiao Chang > Suggested-by: Jason Gunthorpe > Signed-off-by: Vivek Kasireddy > --- > include/linux/mm.h | 2 + > mm/gup.c | 99 ++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 101 insertions(+) Reviewed-by: Jason Gunthorpe Jason