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 F119FC61DA2 for ; Thu, 26 Jan 2023 15:05:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 631B86B0072; Thu, 26 Jan 2023 10:05:37 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5E19A8E0003; Thu, 26 Jan 2023 10:05:37 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 481D68E0002; Thu, 26 Jan 2023 10:05:37 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 39C846B0072 for ; Thu, 26 Jan 2023 10:05:37 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 0569B140D94 for ; Thu, 26 Jan 2023 15:05:36 +0000 (UTC) X-FDA: 80397274314.02.1C3514F Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2082.outbound.protection.outlook.com [40.107.223.82]) by imf16.hostedemail.com (Postfix) with ESMTP id 7D644180021 for ; Thu, 26 Jan 2023 15:05:32 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=jn2fJKeQ; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf16.hostedemail.com: domain of jgg@nvidia.com designates 40.107.223.82 as permitted sender) smtp.mailfrom=jgg@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1674745534; 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=wq472Bj1XyY4O12e8VgMnP3f/PT31jjUU7FY0HTLF8Q=; b=nhZG0KhTEi6/zbMSpEKwZT0PdCGfaI3454XmNXcHRL2uxNO7gJr90/N7svkPp58LoIUKE8 t3IhoU+X6JT8tCtsWkmeC8wu8MsU4ghdrCSAQP/GF/0kQorj/YUdq2z5Vjn87DA1hKGpX8 rhxV4H/9rBZ8se6PLhMg7qRwcabPvBQ= ARC-Authentication-Results: i=2; imf16.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=jn2fJKeQ; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf16.hostedemail.com: domain of jgg@nvidia.com designates 40.107.223.82 as permitted sender) smtp.mailfrom=jgg@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1674745534; a=rsa-sha256; cv=pass; b=ajFfLKttV1RB62BX5E7Z1GBDqKh2Uu+3pdPMX86XtoL7+DznNIYd94UIdCsjYPQCTlC6RA n4K5lb3N/whpKAU+IteVumwCkbDufMwcTrlDimkvXrpljMC8Fj2iXIq8NEAlOvyeTR529S IZc0CXBkXxwrv0dujfYRbIXW8OKbMLs= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GFjEhzIARDMfcSvIDpAOyFZM2AukFygcBDWR+dSH6mqfIN00qEZI3imO5FJu4u/8UoDB9XhVK8rml1Xd0E5uCo+iVajxuzHcXwSDPxByjb7qx06wSzDwZNlgwTp+jdMZiZ8ZOhcP9Yx75z+Mb3Vb7C7jxq4wIZAdmyPXBYOzYx3ikAMzFXbLDPzEDsVbIGGIMrVXL+wbfY21wVx00U8u2hmSkFHv9ogtPoOPucnMryWtlfTyDHQvqC2yMJWm9+iljxtU1RE/By6NW7v2sDwyukdqw0/5kUUtYSn/3dRgdz0KJzLXOEqAeesny9XC8hWR75DdwVePlVJLhqRsN+5vdg== 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=wq472Bj1XyY4O12e8VgMnP3f/PT31jjUU7FY0HTLF8Q=; b=LqipCPdlerlDw3PIWOyln0zMeRDn4vn2KgzmkvqMNVeGYRKod2sAMSamF7iG9bhp5UunWKRHmqO1K7vXPYsVdmHq05atHX7H3byo61GVeC3UYMl1SMhePWYgz4iDa0RoElnMu+FHVLEmwqB8k4bqpDLRD2cHUQdamRjdOaoZs/8pTFSBuEDM67Q8+S9srMRiuO1aZXHqYAnqL+Wm0w/tbxNLM7xQ2weLVmlje1XwWdtpdeiS39yDg3QNCPmduij92Rxf5SPGQIEBZK2iEqzLEdNP7lmRX6NFNCsP6dCjOd/WqDnNbTxSsJiSam2r/cO6v7FCCjRC21F+kaY43UgefA== 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=wq472Bj1XyY4O12e8VgMnP3f/PT31jjUU7FY0HTLF8Q=; b=jn2fJKeQSwQv1r/BQj82mtoHLX1ORuzyHYsRnGRsRdS6DeWqd7HlgBx+Hif4vL6mfrDnDFhVpPQSigsin0WPJebiaGwZSJ7FVNlzvpBRp63yIIHXYXGgxxAn+O/2QaMxD1tZPfMMOoyXKPfnrkJd2BVDnu0lSWFGts6lLYuGbc4SqxxCQdM0tAxbKl0lg3Jr3sRbjbx+sRqQNF1nFqkchEMB6yesC6wGIaQZBCU1aWeZiDkT7euRQ2PFo8UGw6XFnb9Cp6WjjlQ739A3oYd4FaEQdg3/mX3rXzbIIX8FYMB3/LwvUJyIQIiZgmzCrTRjB65DfdkIkRWk7pjXYS3Ceg== Received: from LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) by SN7PR12MB7348.namprd12.prod.outlook.com (2603:10b6:806:29b::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.33; Thu, 26 Jan 2023 15:05:29 +0000 Received: from LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::3cb3:2fce:5c8f:82ee]) by LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::3cb3:2fce:5c8f:82ee%4]) with mapi id 15.20.6043.021; Thu, 26 Jan 2023 15:05:28 +0000 Date: Thu, 26 Jan 2023 11:05:27 -0400 From: Jason Gunthorpe To: David Hildenbrand Cc: Claudio Imbrenda , Alistair Popple , David Howells , Christoph Hellwig , John Hubbard , linux-mm@kvack.org, "Mike Rapoport (IBM)" , Christian Borntraeger , Janosch Frank Subject: Re: [PATCH v2 13/13] mm/gup: move private gup FOLL_ flags to internal.h Message-ID: References: <13-v2-987e91b59705+36b-gup_tidy_jgg@nvidia.com> <20230126154148.2442e4cd@p-imbrenda> <7388b6a6-85f5-2e61-e3dc-54de531308d0@redhat.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <7388b6a6-85f5-2e61-e3dc-54de531308d0@redhat.com> X-ClientProxiedBy: BL1PR13CA0090.namprd13.prod.outlook.com (2603:10b6:208:2b8::35) To LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV2PR12MB5869:EE_|SN7PR12MB7348:EE_ X-MS-Office365-Filtering-Correlation-Id: 4a7bc25b-3401-45d1-f581-08daffaec2ff X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: aGjT1Xi0QeQJhpR3rdJkc7Pm/eIuxzH6Jyh+8zjIhy5BNfEV5Yx2H6zwRtZpF9roymjt01ZwKDUvXJuqbVvEfnImABrsIgJQ+gp9BJIykPE1XZEAfdtXAOfY1R2Om4rEyMxG8Mo9EKVDX7RctjlZtF5uAlYBZNs6BjMHOxuM80cGt/Jj2xI7vLjFs/GARRgt+1ytGK1x5iIRba0hT/+HFJpEKnwVO7IvI6Qm2flYPpRBXsYLs85CphGrGs3+usJbFtK79m0ImHgx+AlCVaxw+01hBZUhoIk5TQU79u79OkOBYv2zAM2SG/LP8V/QppYL0QyTY3ChKiCZ48hV2d+pVwtdeuWumoXz97gISVSrD2hIlV8LZ0NHwK0rGzCJsAFoXb1DFkVsehLG6IrWBDE0OPCSDLULn8RDwS59o+AY+ECzbR3GtAB6HXq1YanBnX68SvOwiRMl4o0Vpf3hg5Wr39VyU1E53o1kTt0+jxATlv3cQlTsGJyDk45oVVNTX7UpJPOloPXMWB6PzScARkzesjqEPXAxtfglCEZiT5o+ngH6LLy21LG3BaYiIAjEr16jLSOjKTZnXJhHWu2axnctTFiF6GrB/j8W85dpZjTWhxBQPR/wCRmOcDUeyyw+sLeuJ1Nrjw72NVRDZlNtFEK17Q== 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:(13230025)(4636009)(39860400002)(136003)(396003)(346002)(366004)(376002)(451199018)(54906003)(2906002)(36756003)(86362001)(66946007)(83380400001)(186003)(6506007)(6486002)(8676002)(6512007)(26005)(478600001)(8936002)(53546011)(2616005)(6916009)(316002)(38100700002)(41300700001)(5660300002)(4326008)(66476007)(66556008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tdStX8MHRT9ymPMavgtcS3d7MrnaaxspFnwitXgWYRRszjIKcxrcgUBrKYZC?= =?us-ascii?Q?3NjOepxar8nv7GEM6iDnAzgyPoa/NhXzINT4IAU4c2kh8Zhw+J9A7ST468xe?= =?us-ascii?Q?Rvs9PODcbgbynDFFnzfRsipD4OCegxaE9K+f473DoaDsfeHZbxEhd0hNdwW3?= =?us-ascii?Q?2rsxT6nUc3lko2JYvvIk5yGOkw2nn7s//l1b18wPR2fxeS+FTyBCR7pV0QPr?= =?us-ascii?Q?5BR5pr0PTCQ5IccS7dd+mTbDDIOP553lX0xbZ+tlRS5IJ4Rld262Zb0dlTrn?= =?us-ascii?Q?I97ti1vzBw8q7OSsCteJDl98OazRWuA8/KiBhufzkgHAuh/U5MTQOEmCQZMk?= =?us-ascii?Q?/+8bGpJfDv04JCXYWu/oidReEWyEzN3658Wvjba1UQmn7x04lfcO8hTw0d6j?= =?us-ascii?Q?DrmpvAJvx8NMlOJAr32DuPV9IHgk+tYCsAOjNe6uH+FluD6yJ52qxGE+PJXR?= =?us-ascii?Q?sbM6CrncujMqUjOeFQSh2UmPyyqaXcDI68yO7msK9mrXJHt3IefzCX6/7XBD?= =?us-ascii?Q?ruadDQlBMjMl0FUxf3RMm5RSAeSPwUyfR9jQchRkPQm0Dig5igymcRaqBMMl?= =?us-ascii?Q?/o7/dNBOolA6rIV3IfPUkEinUaYk4+xAuqiCoAJHixiI/2kXf2TU6YiQaRsZ?= =?us-ascii?Q?yNX8+uAmL0nK6WPKcg0zthKVsTfctNXuQ0JRrVXrcUSRtUHMua3bd1joA8lh?= =?us-ascii?Q?X9XvcMqxprDdnWp3Rvq+owSW2KAIUwDzGK7+CjImesNDXeW2sZX9NFRh5tXu?= =?us-ascii?Q?ymjRkIJ2WsQ8I+W5kko8j3/XZcyeaG3ZzjrNhhYPrfzxFnI2bMtxjpbxH/Hq?= =?us-ascii?Q?lwCZoTJmpT3Dc+Y6jFMAneMvJVBVLZIAAIw1adgUCJncHWTKEQBCq6RrIyCO?= =?us-ascii?Q?CY3oxjm/DJ0ahYWEoHziJDXWFOSSH1rSWjlJbTYPi3vDo6Zm2PU+pVlEC1zW?= =?us-ascii?Q?dOOJP8Bn2JWG7pH35G7kuxxUXvMLgRdBy8uy0BzwQlbaRQ5jsAQugHi4fpiN?= =?us-ascii?Q?hgGp/uq7HOJkjIDlVhVX40aZ2IUfeLDP3rHz6CfcR1etNjizPNrLdk+HkSpU?= =?us-ascii?Q?t95r4ZAySBcXAw+3DOFuLz8CqTCtlJg5TLvUkkn9xmnpcRBNpJ5b/7/9yAej?= =?us-ascii?Q?y68GD6PExftzFofQl1LTL2DbVxq1mMuBdMiPkJZRbjhT0pQp73gVSrlgnGNo?= =?us-ascii?Q?9DU9bHVPSWBny7CrZM0hm5TutCvLcWJOUQJCl6Ibu1ZLs5pjt889T2YKYhe7?= =?us-ascii?Q?CFm2FsKSx1UXaZx7qZ2tmv5KysQBjm0G735XQrqOtpSTd4IsOHYm8mIUhSyo?= =?us-ascii?Q?fufY8O3jqMNQ95mV5ZfO+P0wY0+5tlj8/YfbQpC+x6POrFjXXEHWjbVT8n7T?= =?us-ascii?Q?Sc7pT8oSighr0xBsB/M3vFLRRJIVYOKQMNR7w49Q+FUB6VmoSWN/sfm+pwI2?= =?us-ascii?Q?7h8oWvyi5UBhm8zSkd3iN+25LzVVLgRKLIY0j3xVYO3q8P74yMS0fec6usqa?= =?us-ascii?Q?KwneWFD5GcELveGo9gzu7iVBIJ+CMOg6BHhoS+h71J3V7uPQoa/XJY3IXyZq?= =?us-ascii?Q?hditx76JcwU3Gh5ENrSByRM9pBRoNkmR1iKVvtik?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a7bc25b-3401-45d1-f581-08daffaec2ff X-MS-Exchange-CrossTenant-AuthSource: LV2PR12MB5869.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jan 2023 15:05:28.8699 (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: MuHNAW6v1US5qTiO09s0u3OvHSYAPXcIF0zfo3WylI+4pqM+qCqhkbnRICNUof4D X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7348 X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: 8xnq9swkcwfnc1xfzp4sp9jprcw6eyrt X-Rspamd-Queue-Id: 7D644180021 X-HE-Tag: 1674745532-543979 X-HE-Meta: U2FsdGVkX18Juub/8yX5BJDr/9zC/JoBbnO3AQ793s9KlJKOvEnucM6vqHuad5uge7V7VIe2HevOD3/V1Y3ySMEdWWTSgzpwuFGjlBFxGTHSNb9rl6+jmj9ESDbSy5VZb+zNjgKNYRZArIZ59tMbiV/s5WXmubinaxgQMuLJcydb7oK00TgjTpPxSFENFsptP4c8sDgY0GRIWuuJYkhIR32jVxpk02mYqxK/uEIiAyWNK1FPiSpJ96xba1ENZDiMUwvBkQupY7xKQLEpZ/GDAg8U5H5PCl8JSlHLPaIKxFd2kK1kXDeE7NMrzkmZkCJDfFsV3XZarmO7GhqlVnOanZfd0Q8FFiCCY1v2fh3COoXaX+73SY3YU5kHbYyfrtftGWp/rbsDZ2zhioRh2U54sZNg9R0RRH20eW7k4vPJoN8RJMx4CJtBAM/sJs5wJK01GEn3AjSN7GISktNPbgFpgBgleXx5sipQXBBOWUzsFQS/2Qtr2Q6Nj99MHvy9MeJP0LyIO0VhANktuYCVmI9LCSEmHOXoIPo4bzLcd7dz+I0h1dvDVFyzGoAx9sXVb7dWUE++nwOoC5f9Gh6JJPmVY3yYFZH0CKdOxYxllg9dZADMf7DgBm0xEnBg+LTYJSKIkb1VX52pCdmftDOVKybpjoIS2BR+unM1l1R5g2oS5POJwJVb9pS3mlC9dadgYVlKpR8Dg7c5aeeBKlZ5utClFavvT8jUc+RXw8b5KH+YHUlh3zVcBhhPBgcSDmoL8sgCCQhg1z8OeigVLyegMJiscKzRrDxasj3I6fH1cyIIe0QRs8ifvRmlX/sS8HFZM2YxeBvsAUnY/M7a8EaWn7h9EP+4aS1MefP4U6YkQtslojy182jM0P0uORZscsoXRMHwiA1+8hD5lz4gs3oGRVQ+3Mmb9aFTtI4Kkg61qoluEap9Ihp1BHsLWGm/wjDV8eswjPz/w4+npdR7z/Iuug4 quPyFTKO +uz2e6SpEc4qhAVcovet5j3Ec83EhNjBVj+Z8tNrMnb0dHMp+v5Dnzj12GmdNhHDfhLN3V4Y4C4wN4Fo1WdLzKeqYChtptIFKoS6MM3BD5Hl7lPQ3dMfd5hP3S+/OCybO+pt/jo169pzmwTuzx7c/Xc+Zkd4NQm2FnZXpCA/C5k3yqFjTDeJCpa3+pD8tN5Ky5gSfLF7y6iJ1tcd6MY4n3HOclM/BLTBFBLHpcvKLKGi98FniOiLajDHtnVSYQhx/TGuMC5gJqGuH563AgUCEgAWJKzmzBgjzu1VJbPb9lYFiNL0= 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: On Thu, Jan 26, 2023 at 03:46:09PM +0100, David Hildenbrand wrote: > On 26.01.23 15:41, Claudio Imbrenda wrote: > > On Thu, 26 Jan 2023 08:55:27 -0400 > > Jason Gunthorpe wrote: > > > > > On Thu, Jan 26, 2023 at 01:48:46PM +0100, David Hildenbrand wrote: > > > > On 24.01.23 21:34, Jason Gunthorpe wrote: > > > > > Move the flags that should not/are not used outside gup.c and related into > > > > > mm/internal.h to discourage driver abuse. > > > > > > > > > > To make this more maintainable going forward compact the two FOLL ranges > > > > > with new bit numbers from 0 to 11 and 16 to 21, using shifts so it is > > > > > explict. > > > > > > > > > > Switch to an enum so the whole thing is easier to read. > > > > > > > > Using a __bitwise type would be even better, but that requires quite some > > > > adjustments ... > > > > > > > > The primary leftover for FOLL_GET seems to be follow_page(). IIRC, there is > > > > only one caller that doesn't pass FOLL_GET (s390). We could either add a new > > > > function to "probe" that anything is mapped (IIRC that's the use case), or > > > > simply ref+unref. > > > > > > Is that code even safe as written? I don't really understand how it > > > > yes (surprisingly) it is > > > > > can safely call lock_page() on something it doesn't have a reference > > > too ? > > > > the code between lock_page and unlock_page will behave "properly" and > > do nothing or at worst cause a tiny performance issue in the rare case > > something changes between the follow_page and the page_lock, i.e. if > > things are done on the wrong page. > > What prevents the page from getting unmapped (MADV_DONTNEED), freed, > reallocated as a larger folio and the unlock_page() would target the wrong > bit? I think even while freeing a locked page we might run into trouble ... Yep. The issue is you can't call lock_page() on something you don't have a ref to. The worst case would be the memory got unmapped from the VMA and the entire memory space was hot-unpluged eg it was DAX or something. Now the page pointer will oops if you call lock_page. Why not just use the get_locked_pte() exclusively and do -EAGAIN or -EBUSY if folio_try_lock fails, under the PTL? This already happens for PageWriteback caes. Jason