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 D70FEC05027 for ; Sat, 21 Jan 2023 00:21:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3A2C16B0071; Fri, 20 Jan 2023 19:21:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 351C46B0073; Fri, 20 Jan 2023 19:21:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1CB3A6B0074; Fri, 20 Jan 2023 19:21: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 095246B0071 for ; Fri, 20 Jan 2023 19:21:18 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id BD4628067D for ; Sat, 21 Jan 2023 00:21:17 +0000 (UTC) X-FDA: 80376901794.03.6230B85 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2066.outbound.protection.outlook.com [40.107.223.66]) by imf28.hostedemail.com (Postfix) with ESMTP id 61976C0012 for ; Sat, 21 Jan 2023 00:21:13 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b="Jq/Slrio"; spf=pass (imf28.hostedemail.com: domain of jgg@nvidia.com designates 40.107.223.66 as permitted sender) smtp.mailfrom=jgg@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); 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=1674260475; 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=fuNNX545o0rXajGeM+hhsKBbBZNmsTsXmI/1ATUqzzg=; b=VLfj5fss3lSSSXTqgfEaLaeWszZpzFZJt2KurvfVVFamO2rA9ApIJhcQWTbQ9eTvlc6JNg 6M89bySU5JLmGJ3HALCBOc/0dTOKpfGvt35SkQVOTPE3EU1wtR3zstlD0pdpMs/6k8eRj0 uQA/9oRwVbsbBDbTVYuqW4oUC/mmrwk= ARC-Authentication-Results: i=2; imf28.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b="Jq/Slrio"; spf=pass (imf28.hostedemail.com: domain of jgg@nvidia.com designates 40.107.223.66 as permitted sender) smtp.mailfrom=jgg@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1674260475; a=rsa-sha256; cv=pass; b=FpVesb6CAXbdmr2+KdlCjRoFddjp7UfspHz2+ADE9C1LBsXeAlu/VnfujYIaijEqcAEf6U MQi+3C5OGuC9qzArlVw4awOyz+DiNQ3kcleE1dl/5LONuRQzODHAQtoyP2rYecjJJhd1m+ F3mgl9ZKtD5UPjlsSWT6Q7Ib7mz2k0E= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KOS8MvhYQ2NzOFnxUdSQEwMKws1kzqUJ/0k72wEH4bUCYgk3d5Au6Vowd2zcPDBCnrQu9qrhYaW/RDSJuF8dK+/WGCNhEbyenvA7lv2aLju12jx9kje7zclwPtGpxRjKUN+0vOVH4o4+HSVWZq2/X/udVSGpqica4gU4PYQ5royHGmCoZ3hT9saQlo3oo5bvLhjRE9anFWOmZWfER0RSN3mV9dcfithu7TWcJETdnlXBbYWPTmEP5V6vgrWhbpGVDzeg4j42VMxJthKITAuNI8rAaVN7YJYzuMDNSWrPRo08INeViCjSx2TwVllZEK4Whgc7zSHBqFwOcwev1kKHCA== 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=fuNNX545o0rXajGeM+hhsKBbBZNmsTsXmI/1ATUqzzg=; b=cd8twizXA4d/x+z4Rs9c8ztl7XnL5hw00yeoRc2m3tvCRLthmrrQkxuzIXDJ+Hi6ucU5s3WY/3+yJWj1ef0/l/NUotYYkBxKE8Bh6UNAtiurZi0XdYlbM+F7NuZh0BaoVPTx7fZiIbOMs+e/T3ihXVfWH9a+eazjrlLSma40Q89/sGt7TRjl3wnOmuVndgo8ywkpGXOlMrAQyImkRriSPkpgsgrtog4BYBCpUVNdtXzRoFIGtdO89aiqbFWhsfJ52Wx2EghovMKEHNbB7q1gAHhz9W+/goclNgNpH8OnE4JElT/JtDXG0hvGb4NHwNWL3RDcdRqnbT5SYWTs5xn6Mw== 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=fuNNX545o0rXajGeM+hhsKBbBZNmsTsXmI/1ATUqzzg=; b=Jq/SlrioJndIAQRwhTInELqkixv6xtGystc3eNCTcWYoq8zEdvYlYFW318JKMRYUdGQtLdPzcz0FHT1/Kt7iqcVbS42KBHPrzweCUqc00TsWzQy0ZaNW2r2m3uxniJ8BhenMNE3vZ3Ys5VyEDcLmGahktg0rzmzYNvEeEdwTWzUicG+BPFnKa89+R+lo9wDYJC2ilv42u6j6w9t4fG7T7pE3aSBL6XPpUeRlRvJDqyLpEywE6hJw6OanvLwyziCxSvN7CL2o4FibQbBahpOCM4F5vaDd/AtpslUEmhYBxqAEZy3EjBIqpCRZpEhD9RDD0lkS7OrkA8TUx2zq5K1lOQ== Received: from LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) by SN7PR12MB7910.namprd12.prod.outlook.com (2603:10b6:806:34b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.27; Sat, 21 Jan 2023 00:21:11 +0000 Received: from LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::f8b0:df13:5f8d:12a]) by LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::f8b0:df13:5f8d:12a%9]) with mapi id 15.20.6002.013; Sat, 21 Jan 2023 00:21:11 +0000 Date: Fri, 20 Jan 2023 20:21:10 -0400 From: Jason Gunthorpe To: John Hubbard Cc: Alistair Popple , linux-mm@kvack.org Subject: Re: [PATCH 6/8] mm/gup: make locked never NULL in the internal GUP functions Message-ID: References: <6-v1-dd94f8f0d5ad+716-gup_tidy_jgg@nvidia.com> <4f052c76-6e29-24d7-3d7a-79d7aad69364@nvidia.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4f052c76-6e29-24d7-3d7a-79d7aad69364@nvidia.com> X-ClientProxiedBy: MN2PR05CA0029.namprd05.prod.outlook.com (2603:10b6:208:c0::42) To LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV2PR12MB5869:EE_|SN7PR12MB7910:EE_ X-MS-Office365-Filtering-Correlation-Id: 45c48612-990c-4cac-ea9c-08dafb456614 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YowCRiaMkDmYtU3OYwJ/eqhtJQ6lv/u9ypxij6E/9OIYV0Jo4FMSx1rEX0HvYE90JBiGO077Q5o+vazlxitnH4e1wogpUz/RjNUdxYoTGaE/U4ZwGj5acJjgIkTABAho+g9lw6XB3bpEY4l6PkXHOKiVIaJTjGlhjS3Ep19Dm6O2Bp52+uVVlQFUt+bn3E+1KXpPl+ekWA12aslZQgAFgt9EbeCKuq4VCCStTSv3bI8mmE4mMSxLR9LRNnL6/tyrasOGUHbfvVxDlmCG5Uvbxc7jOVZPS1T4DxjpT3FlNBwDWU5uapyUV8XRtEUROaDijWOe5Isp1w1UajThYNFifEZbyDCjYle8+EYKP70tKeX9wtNybvNSsSBCz+MOxF7nLCXlf1Jf3KCjVFkjcOsQhqPCywttUY4SEjkcrPbzzJ+32FnxRaxbnzK4PGRTykitsdtwCV27naqe9R2oDCYGRjTcTMXFOqMzp9VzqKr1nx++DWQCchfzzu0rqk2peOS4m/qHx+yVnM9ngE3YskxrbHwE5j7qV6qlSYTY9cSDEscich+JKByvXKbRHLW4b5D0h50Fba+p56Cky6+e61klcG4W7BLXmqwwQbXV+0Xm3RsqfxXC3nmEbHSWgzsUfPgzXNU8JthEGmhKfmjQJDy86w== 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:(13230022)(4636009)(346002)(39860400002)(376002)(396003)(136003)(366004)(451199015)(2616005)(5660300002)(36756003)(8936002)(2906002)(478600001)(6862004)(6486002)(6512007)(26005)(8676002)(66946007)(66556008)(86362001)(66476007)(6506007)(186003)(4326008)(38100700002)(37006003)(316002)(41300700001)(53546011)(6636002)(83380400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?EqEll38dQkkyIKCexO5Dkr3zcWFgzs1hXXl1exGJcCYPZpqdAKKLSj0oJ5ud?= =?us-ascii?Q?GH/aM93CvCAL3xP1WbM0Uo1u5Cj9JW4b/MwSh18glHC26fMgeAPqJxJ+ePh3?= =?us-ascii?Q?PG6TBUPjxjqGz2iuJg6fxdCscF6aS2IdNIp9y4+s9rj7owN/aTq8nghU7+I3?= =?us-ascii?Q?pUicQoyWLuIpoAJzBnXmda1r0n9EczImxH+2PG+92Z4AtaV1bmH534Sbdy6h?= =?us-ascii?Q?euMVjV86nuYq61rmbwZfMCb28/ROT+hSUHNd9SZTDJsl5OfICDLF0jpUNyDQ?= =?us-ascii?Q?YoxQVwU/6BMAxMpBIZyKRPiCTc5YcaeVKW2RSdR8iKub5RKgMAPzQtE9HFYn?= =?us-ascii?Q?RYmD8vJOltbDV7AMij3JN2MUXEvU6qeNPl2XFvmCvrbxAJWD+uf7s+zUukoL?= =?us-ascii?Q?5/hZsj2Mo0OGithsjZzPcLNnDmkdcAKJHfZoH5XBMFmGEpxPACqb9IKEsf3P?= =?us-ascii?Q?Yn1zZ2MUnsMF2EGD99FRf09K3sXnNdyLyijtxYSAqgQ6bOA1OG4O0+s0pNjp?= =?us-ascii?Q?vX3ZrIa1k9H358VknopSRx910OyCuHbCnVU8XSbl2ApHWxBbHrDAfkNR2IuX?= =?us-ascii?Q?kzCWT9AGUKVK7WZepJKf85oDwfPpffCYPfftQhwslzT8Q7lh3w66XLyBfvJG?= =?us-ascii?Q?swzXqkod9DMsaicb6MtTW+tG7XudM0MLyFhe8lv6gc5cdQWPXVq2aDdwUJ8O?= =?us-ascii?Q?Jitac8kfzOe5rplaSrmdvf9UYOpzgZI/HdYdKFF8MoQNZ2Z95Vg7630Zqhxc?= =?us-ascii?Q?eL+PGsbPu3EVnfGa3aK+yRYZVFSnO6CN5KzCVJb8eOQVaC+WVOSxhVS2rgWR?= =?us-ascii?Q?cU9fGuBGkApCbErcnjNT817vNuckJTiq6SXJPdXcLZ1CiwXz5mHTYo+1AFHG?= =?us-ascii?Q?tuIU8Xkx63GAloKtpYehXa22yYLIiFdlJ62qNn3Z0kHoEv4kKi65VVFg9yiL?= =?us-ascii?Q?2Cq3HeOa5/uF98EHRdgfa6B2mz0+vt2yaI/i/2JXzmTZoF3PzzvoYkIOeyps?= =?us-ascii?Q?x9s5SJp5iTMqH1UKT2ECIWnvNQ5+1VOzyCSNkAGb/qADvUz70g4LbIH/tsu/?= =?us-ascii?Q?Ph1nr1CULqmMZkNOGizvCSgKxz8PXP9bLM6GN6afhYo7ZS/mVDQQgkReUDPn?= =?us-ascii?Q?woi8Xzr1EeNWMefgkxHe34NDYvNdSMjm0KSoFqRdnLsMacMxKEl1s+jDXw2O?= =?us-ascii?Q?vnco+Sk/ZNH+MhxxTK19i1rRS2KS5fkXPZIHedo+cfbhm/Z6WXAhRBAjWvfT?= =?us-ascii?Q?dcGj7Z/o2A5xi50D+KzkrSWuCJ7F6adQLfG/FnmAuh6ZhBtf01nWtGdPm1mu?= =?us-ascii?Q?Cnhlp85Avsx+Em5Vu/afa8XkfayM8q2N5UJIyPMG+nSThwoAv0PZNFIahbFd?= =?us-ascii?Q?BX+gPZHcuJqGxaX1FWPTnjizz68t2hDzCrRMCUs/3eYT057AXBNO9mug0WG+?= =?us-ascii?Q?Cy4rbh1c6j68GFwhTF967ZcwXhA1n12h3mrGUhk/G+r/HBQ/eGNmUrJHy1Or?= =?us-ascii?Q?k+Z4GHEBgzv3pFJ4wCQq71vQ6VEyZY35hkgIvobGriP4TThjRCZOXB/Mv4lh?= =?us-ascii?Q?MbJu5sSn6oSuyfGaEF6BV7XhKA53ewnULnZp4yzq?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 45c48612-990c-4cac-ea9c-08dafb456614 X-MS-Exchange-CrossTenant-AuthSource: LV2PR12MB5869.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2023 00:21:11.2026 (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: hPrmyxYeWMF7c/fBKND/un5k2VPCFx0Lz1Wm1hYteMI5RjAJcCFm9hVdL6Jc82/f X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7910 X-Stat-Signature: s99y4ewmxoobq38a94yr8jqqywson3uz X-Rspam-User: X-Rspamd-Queue-Id: 61976C0012 X-Rspamd-Server: rspam06 X-HE-Tag: 1674260473-437139 X-HE-Meta: U2FsdGVkX1+M36xJ/r/iW0VR/UQuEWHjlh33I7LutrQSKMX96C4Z5zJURpMoCqjztPXca+hNsftFmBwRGe8PceFy5hsh5kRNcpQS5H3mto02k4W897nFcaZrkeXqwBvhVIZekQQg9M1rfXTWifUqmuu+8TYLeOQuv+rRoD/c9K34lKGIsLVfzpzNp9gXzR0P3DcuVBiAyDxtobNtDvV6v5bKzxnmaW7m4BsW7GI+7J8QLbiAyTLNjszFJWtSUCqsZa+VsqVwb8AGR0q5khK/O3JnvfNDxLQHB8RgFReqvbAGeo7hwQHC7rT95U1NN2AgaFx1+LkvIhnx0Rg4JdOQM6dyeI36fh5yuDZJW8e/KmKUR5nUjcOVZskUsM1fePcmEKbjYBroFVldPyuPBWljx20TmAVZM4pqBHomxD3TQzL9nDhoaIudbyeCEEeRVQM3EtzpHY+7Yc4XOR38jbAAt1VJwR6RvyauSNb7wIssx9o4W6bJY6D+JxbOCkwe6XCxbekVDul0oOHWPK+//lNMmZGYalXnhdHDjxfLsPToZEOlR+WbTrRP5qCk8MMaRo54j0uV1YAZtvNXq/qRYEF8vbJeJvWbyB+/jrRULSGScGa3BDSE7lN/b4JFn4Jk/OzbHv6wfwIDefTJonn+C2H0wP79G1pn+/BdcEGiSy1T0j2SXSMlBpOzGU//IFJEr9aFd8X/REK7cmA7weiolV8O3dHdVFMenHnDUBv2rYUJwKSLg9DuIscBKD3KOmpr9PhWGeaI//JRVvpfkGZNV2rp8RMHj0qUdww/yCKVxTKkZ3ReUXy6nj882MZs7hWqKS7RVRcqUAftGrtP3pvNg0LjcLXQculyMd7e4F8aRkIPLhXvyA70pnIiY0L2b5uaSLdRNGSo905NPBs0C6T7TRGAtyRi0hVl9XHWZjwwO2EvmfY5w3X3/lJhjMibbkpbusbGxEiE9jRj5iEU+rW5XCB xmFHqkkd RXqbidO7lD7EJ/PFJEDD4gvlYDmPY14E89qL9pLyXmNCDSpc2hJ8D9abXLodX767+OyVxzzDBdSNOeXgNSNuoejSOH4TXOFQfmQmJzQLzfFh3jMd7VjxJsxjqp8nPgqRAWDf/fxl7Vaza/yePB38zg9xx+EWmqVJ7KhcR24C48BBbiSmLjLpOsLmkaeqBnP4H9XxvJSZcYSxnONE+tUxY/45AffDsPEJ1OgOIg3mYJVn/LdlWbuZPzwRaGw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000053, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Fri, Jan 20, 2023 at 11:19:58AM -0800, John Hubbard wrote: > On 1/17/23 07:58, Jason Gunthorpe wrote: > > Now that NULL locked doesn't have a special meaning we can just make it > > non-NULL in all cases and remove the special tests. > > > > get_user_pages() and pin_user_pages() can safely pass in a locked = 1 > > > > get_user_pages_remote) and pin_user_pages_remote() can swap in a local > > variable for locked if NULL is passed. > > > > Remove all the NULL checks. > > > > Signed-off-by: Jason Gunthorpe > > --- > > mm/gup.c | 30 ++++++++++++++++++++---------- > > 1 file changed, 20 insertions(+), 10 deletions(-) > > > ... > > Looks correct, just a few remaining comments that could be > removed or fixed up: > > > @@ -1121,7 +1121,7 @@ static long __get_user_pages(struct mm_struct *mm, > > i = follow_hugetlb_page(mm, vma, pages, vmas, > > &start, &nr_pages, i, > > gup_flags, locked); > > - if (locked && *locked == 0) { > > + if (!*locked) { > > > Just above this function, there is a comment that can > be adjusted to remove the reference to possibly NULL locked > arg. This one: > > * If @locked != NULL, *@locked will be set to 0 when mmap_lock is > * released by an up_read(). That can happen if @gup_flags does not > * have FOLL_NOWAIT. OK > There's another one above populate_vma_page_range(): > > * If @locked is NULL, it may be held for read or write and will > * be unperturbed. > * > * If @locked is non-NULL, it must held for read only and may be > * released. If it's released, *@locked will be set to 0. > > ...and another set, above faultin_vma_page_range(): > > * If @locked is NULL, it may be held for read or write and will be unperturbed. > * > * If @locked is non-NULL, it must held for read only and may be released. If > * it's released, *@locked will be set to 0. ahh, I missed these two functions, they need to set FOLL_UNLOCK and de-null locked too. I didn't check things that were calling __get_user_pages() :\ Thanks, Jason