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 0C6DEC27C7C for ; Fri, 20 Jan 2023 15:44:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 720616B0073; Fri, 20 Jan 2023 10:44:20 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6CFF86B0074; Fri, 20 Jan 2023 10:44:20 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 549F76B0075; Fri, 20 Jan 2023 10:44:20 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 426126B0073 for ; Fri, 20 Jan 2023 10:44:20 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 1BE441A0D90 for ; Fri, 20 Jan 2023 15:44:20 +0000 (UTC) X-FDA: 80375599080.30.F3D96E7 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2054.outbound.protection.outlook.com [40.107.243.54]) by imf18.hostedemail.com (Postfix) with ESMTP id 34D7F1C0014 for ; Fri, 20 Jan 2023 15:44:15 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=jvPVo6tU; spf=pass (imf18.hostedemail.com: domain of jgg@nvidia.com designates 40.107.243.54 as permitted sender) smtp.mailfrom=jgg@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1674229457; a=rsa-sha256; cv=pass; b=vBTg9/hmmk2Q2wNLkyUh/nOGgfhNwnlQaPEf4q7KiRltEVsUZeRK0A9NlmQ1JWDQwPOXp4 hVoyZJfLb7aoUCtEhErAMHevN0qfQEbLXt7pboryI1fpktU7PeMSieRIfYXCPlDZwyGRB5 pQSD7jkpcTz3oMPgrT5FEKf+cbpZQsY= ARC-Authentication-Results: i=2; imf18.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=jvPVo6tU; spf=pass (imf18.hostedemail.com: domain of jgg@nvidia.com designates 40.107.243.54 as permitted sender) smtp.mailfrom=jgg@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1674229457; 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=/Dz7tM5vBa5ReWjPwYSfxYXeF/dOBkPyg1fjIzGrAXc=; b=qzunLx5qG2zh6vWbwfeiLoA/xdfuFEFYbTYqPYkuMXl8hO0P6cJ5P9CbAmKYUaYHla9OEa JtSHMGKux2nAI7krkB1kyyApP16ZzyjcqVugxgkPHRj/UywvxeaDoP9yPbcTR6KmErUEZM pu4Y9wd3CyHmirW0GYoIKUuQ/x0G8Rs= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OXSuJLBdMNmMGqTcjnuqQqxP2WGpXPA/WtBPF2yqbO2TXKiT3yh5+dxyAmNOZjB/UX2t8GQlJaPPTtdfufRLbbH3Fjbr9ZEQAQbPb7kmV4//XGvMzR2Thu7grUjgYjosVVaGi6gtIfViFhRYc1RPRDEV8HkspvvjlK1yVQz3OR6kxyfL/9cDUaZeZmT6dm8AgCTvHUPUvyAcgRMkaJ6rLutMmcoH/cDkCaVu3scI1q5u5HJdYV0MJQCelQns/AJaLzUN1uIyOlEN7WOfbTPcDDCKtH3971q/3+Em2eCbC9ZvvJN2Za4OeSxbKlOeja4JK1abysIzbtTgbnVcXmuMqA== 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=/Dz7tM5vBa5ReWjPwYSfxYXeF/dOBkPyg1fjIzGrAXc=; b=Np05VESgzPzAzHQsbnZcG7ph2HlpJFnlyUI4p11ckLUDg4xXfOAdIwTyqCqGTmpbuCGk8t+hFraC2k1g1k4gil9W8w/hiTGWNuvRL2b6Vtt6sfrC6XaZn5DX+56mZ1HTX6mYZk/XPyxTdsqtK3jS5eMcLqXnRgSHklWP4qmlYb2fkopCrL2sbAe6P0EES4DCvHkwERgwkbYvnI64bL4zJZuDA+8faFPJwJI7+27YGkETVXKSFSlRQGMX9TTgvVn5yh7Ouhu/+nX8KM35IoyN94HXuqWFGkAyu/x7IKY6REEWPbXEv+LpWiSaej6T+12DFtrxmj7IGpXD7AZqvEO8UA== 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=/Dz7tM5vBa5ReWjPwYSfxYXeF/dOBkPyg1fjIzGrAXc=; b=jvPVo6tU+tkG6cdyCR1ppflCdLpmX9fEqrvrsOZYBx+k3sjivHvW7q2hQgp3AkXeIKMqwtWDR5FeEgpBB8b3UDNm6YrSNGcfQhBZj5uPzB51JxPPES3y77FA2T/Hn+xy+UxgXJqZL3xTY6xRwRFg8Rt/lsWjVkK6UlUJQYB4x0Nzfca4M+aAHORdBCRNStNyATTytu8hqQQje+ngfSempK7nHsOURpRGu3+QZERYYUvpAo6FX8D1fTyOMM93urH5At60hvQR29c8nJPGv1FMuplnlVynC+cfhFfw4L7TPKppfqhy1ptK4Xdjn5yffqNE6ulZNYDf+3CNU0y5JvZuEw== Received: from LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) by PH7PR12MB5856.namprd12.prod.outlook.com (2603:10b6:510:1d7::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.13; Fri, 20 Jan 2023 15:44:13 +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; Fri, 20 Jan 2023 15:44:13 +0000 Date: Fri, 20 Jan 2023 11:44:12 -0400 From: Jason Gunthorpe To: John Hubbard Cc: Alistair Popple , linux-mm@kvack.org Subject: Re: [PATCH 4/8] mm/gup: add an assertion that the mmap lock is locked Message-ID: References: <4-v1-dd94f8f0d5ad+716-gup_tidy_jgg@nvidia.com> <2fca54c7-60e8-f719-ef1f-64a9cd817126@nvidia.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <2fca54c7-60e8-f719-ef1f-64a9cd817126@nvidia.com> X-ClientProxiedBy: BL0PR02CA0079.namprd02.prod.outlook.com (2603:10b6:208:51::20) To LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV2PR12MB5869:EE_|PH7PR12MB5856:EE_ X-MS-Office365-Filtering-Correlation-Id: 8166200b-e126-4c72-157a-08dafafd2e37 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zJJWWUvG65VJTYqvdDcfxipocCKUTXBKl/dh3hzGQMrQ4gawkRtv2wbwXgkKQgkwRecXXOTdiqaWZtKjGyFzTcqoEfc/C2uOpE/EytwmRy2b0t23qWyma4JD09gCa4sHUxTw4w8JuN0BRJHhTSddhJUN5GXsC4C2FWgwVNKkrqpb4Io4TPBDoxsX7Y5/4SBMdploDYIUMSSNuZDgcxs5v/tv6fOerwG1zdzg7Jz6Antj6mSY8btQK0XMjPVEzZoDv3jZ/QiaIfglLBgfzYtDzmgeBC2MTmHiLAtH+edRMZShb9ciJ53b4atbMmqPvV7zhaIqXNxAcmHipFZudeX1z3m68xqREbAbPNuFf3k0021rgbDTohHVDW34VMJB6+VMGNnDSFNBV9tDQVKBYFhzBE2Uq+qKWVNjgSlmRol6emeV0qtHCvw3jJxM3FakgmUvAlY8W4yZugMxTlqjIylNFaDQFZ38Q+5i+3Idki0dL0oBi+g5RqVFovrYI8PccF/0s7s0RvctorJ1G3pLTo+NjjEJyFEZlYKW12MnFKWmBV8XDZBUgDSAdZQKlPGe1GtSGTNwo9R9focIGjOXSnM1qWhPVn0TVU+gXziZQbGmSKAJv/6ZRJwB3iljN0goI8JjSom65F6Om8x4kXrTea1yQArpc+XKMnHIThxR0Av0ZR+pwJa6VWz2M2MmD3ptL7ImQKx2GCdWO0CbzciNxSsH28lNKDLA4jaUd3+Ejp3Y5Ns= 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)(136003)(396003)(366004)(39860400002)(376002)(346002)(451199015)(53546011)(8936002)(6862004)(5660300002)(83380400001)(6506007)(26005)(6486002)(6512007)(966005)(478600001)(186003)(38100700002)(6636002)(4326008)(66476007)(66556008)(2906002)(66946007)(8676002)(316002)(37006003)(36756003)(2616005)(41300700001)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9o9cgjGeTlA8OfdFGxs/T3osyOFR0GD7PeUXzbNozAC94GatibCQsrtLTNUw?= =?us-ascii?Q?dtpuBh+2AvSX560g1b9nS5oFaHAuY2Rti6F+jG1xC2RUwjyxm6x1O90JzUvQ?= =?us-ascii?Q?uLJLGTnKDJSQ6/xxJKivL+/oedemmrlvU/RwgeHaqu2pq6aCgbhZP013et4F?= =?us-ascii?Q?ttFO+QK7giwzC3YLdhFdsFt9osNcqOuSKWzimXeqMOd/FUoQ+DZa0DXtDFLf?= =?us-ascii?Q?VGqiTOPcBKFVXptTBqIv0QslmTl507zZyp24269YGd5vEChHe4hpBdi55yqJ?= =?us-ascii?Q?ycYl7Mt7EMZajQ7253fOKNq/UX9YTA9o639cOi7oHDiSfKYAzx6k0bpZ4RT5?= =?us-ascii?Q?wToiIs7zMC1TXZKDVhpc6c5rBaGY44lfru9bTD2jgTkClkOUxv0mfinh2U8R?= =?us-ascii?Q?JZ0GjnxqyIuJpJh901NYl0BhBgpkzj1JlRs3D2iN+7sY8tCQamyNts5Els3g?= =?us-ascii?Q?3kbp+vUY6oKw4gcJVZQ0y2pA3ZMV/XjklE/AbzoWQ/zuoFZAGrFOeMvd+i/6?= =?us-ascii?Q?gwwNJFjy5uHKS02brhG+qK6Y4lL3ZopYEsWBuIZ/2n+NjJ1ZZSdAiOcs0TFT?= =?us-ascii?Q?6ewtpQlc4MpcFkstgygv2gf8tw4iWY5N/KK1yRD2fcT0e/S6pPUDZVQGFIfG?= =?us-ascii?Q?HTToYSuhjPFdAZtNAFl/KpBWtHwDYE/VJQYf79msVarL2/IeQ6xZCo4HWH6o?= =?us-ascii?Q?9WbhuAQQPiHH0Ljtmshiobya90WPx7bjFcCP7NUkeh4PeV4T87u5sRuW7uhs?= =?us-ascii?Q?jZYi7EF0upDs4Kxmqb3aJfyltPzWPbOtJDywurnrmo/HAuk4n8JQ+ZLS9xQI?= =?us-ascii?Q?7qtbQVzS7pjRi22YU59XIJVlXQuA8tdMd0o5Kk8tjLZ7YEJ1E9LYeTS2xMxi?= =?us-ascii?Q?/iH4HCnR3scqud584IsxdD6e2KCLwBTf5/1VUIGbCk/wR2h/qfZKy+tYC9zG?= =?us-ascii?Q?6P4RCu8VQd3LZEOPsIoYEvN5x9R4Hr5lNEk1I+qBLUcYPt19bnZaxyXYCOIt?= =?us-ascii?Q?3YSav7cyYNnxED4Mj9V/euRSosTrL04g74MwGOgSaY5iVAXYMM6yO9rfyERM?= =?us-ascii?Q?pJFZVEd3tkPBCMA/H83VIxiETBysOQVbiL/1C+wkRnpWfC7izmp8cCGMfF+g?= =?us-ascii?Q?Y2qfn6chnLzQKg7lq3nYba1kZ+fNI15vdlsvoUB2fkjSNlTOb39+pjzxEzZ8?= =?us-ascii?Q?/Ufud6LwglesNqLGvcmJuBjmhYPeETAvE5fDlH2eJfPyNl+ZvnD630AC5RrT?= =?us-ascii?Q?bw7u0hZhQhQoj3ZmTFQCQDEh7QC/Q3KOcXYRbq+j6nyuBfodUHJXaJaVFh51?= =?us-ascii?Q?HAVhKowZyJuu7YvHwouAlmy0skfYNqvxA2A/Z8/hQTm+Ama6zLorhVNjAh0I?= =?us-ascii?Q?83Bbd2EpgoV+qHFn33cODgT1BuCw+PSNv3i+APM4uieTVi0Ly3EV/6nmVqOd?= =?us-ascii?Q?b7NdVYVpTUSn3OTSHfqpUyPo32N5ECd7HrBIPmWDkjpSWI6WaZwoS3OYkS2d?= =?us-ascii?Q?n8OBzVz+BPXhYBztMXiF60irrCdvmYWXo3Jwk1VY3cUvkfyn9QIxk5YEIEvM?= =?us-ascii?Q?2wQamTtlOgKBUwACpeKDMK1XYX8DOGgy0OcmvaMb?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8166200b-e126-4c72-157a-08dafafd2e37 X-MS-Exchange-CrossTenant-AuthSource: LV2PR12MB5869.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 15:44:13.6628 (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: To3FhBEv31bZgS5QjUVH4+anuOwdpEw069Hyuh53rUoIaXej0ZMvTiW/C8o06sP4 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5856 X-Rspam-User: X-Rspamd-Queue-Id: 34D7F1C0014 X-Rspamd-Server: rspam01 X-Stat-Signature: u3jdkmecib9a1r5et18ftnc5f89zfi4i X-HE-Tag: 1674229455-842157 X-HE-Meta: U2FsdGVkX19o2oPJNWI4JAgS7gGBk1bsVK+E+tPbQ4+eQWbyPyvdQEJBCUj2OEFor/ZdGlC43Ygn/90XRXBg4R/aAC4t3fpl2v6ihw+uFR6gu7rVeiVo52UPCs4onmB2G0L38Er7Mm44OXJDpHcBi1RbgEtM5i//3PlZ0yF0MGKXYhU/VrHhUGvDYzqIS3vTi8wYFaLsxNt7DLYVs9SARyq4ySgXyQ2tobRfH2igXay+/qugIAnBJ/q0JV3picUC/c38kMbCprlIkd/d5cLujBDXeskiQWA9oQCUS+yaVEZ/E9vcQruu1PlEKYiJZdlaw6y8J54tFJ+Wl/Ty/ZwSK/fs2zF3qH7gceBUuWeH2SD2exAHviu4wWuTMz73Y1+SgMuirimdNTQcE/Ipo8piHvIx33t6Kis0JgMmve+jCWBwaptEFrF7we6Mdoy86J9uMu25niLUM7hzn+TpIY98k1egc7vfdPqc1KAhFGromABcSQJDqZ00gZTgGFFbwrM/ZpEot13G2silGgo7tFyHJUO1IZ8Gc3kO/+GkCHyUjIBQBdhXoko8RVie9OX0Yl95OuXPrFf344nvXEUWmXlCfALhMNJdD6DiGoDshF4CaT+nUeu+TNwkrYqwfjLblAVhyYyOD0jmfAQIjHm7kTJbEmmVZ+BBYxh/3K+ItkJOWp1KYEHZVMNftXn4ap7XsmWK26TFhpwx+arF3IYHdjUecZ9j0PanG0aFzVw1hzySRvEgRQUzRLvqfwo0Uq0k1VnCdrcacYu+izCX+igUygyq8BCpODSfy8PK7F/6HNx58rffYKZH5zzQqaS4l3TgNvGbOVT4q/j3MqRR/t8BELfgqmt30UziGPUFMW00tCe1ej/6Da+9l5X9/7XkQ3vTB8z7d+zHS7ERG75cdPXbXSPlUVgco+iqdg5CyeUp6i/Sz/laePJkv0m+w3iNMcDWVvVupFqKmqth5VirZkW+46a 9hZ+EV90 F0n68CMRFpLF8Ecw2Ibn/gMxOggQXJjrGKADDdlghLcy/RiBhMfpmJpMMuVPcozSr2wJYIX4bJWi6j4X+2Bl7hHgmaTQ07qYAbjafveoPTuTgIYFLA5ykVYqfup4LpuqXkW9Up4eseTT/NUjsnPApH+NL/vS9XLzsRlY7WmxufmBrVgUqR2RGHF8cv65V0GFJEZG4r0ZjqB6vQqYsp2DTEhU73T0RUP9v4sJoq1UByxn+zJCSJnjCV1BNqJ246nBlYNoEcUwG+ifOrnwWJ0Jl0PlT41BOdXW8DiLnxwvc+IOQjBNqy3Dwcq10XlITuO9yRXiWKk5DycWfw5Q9Ju890zGyeydzUCz6IgRJ/uUiG1dWb9GzupAYdg4afYeq92UATTfStPNPL2XyMFE= 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 19, 2023 at 07:08:08PM -0800, John Hubbard wrote: > On 1/17/23 07:58, Jason Gunthorpe wrote: > > This is always required, but we can't have a proper unguarded assertion > > because of a shortcut in fork. So, cover as much as we can for now. > > > > Signed-off-by: Jason Gunthorpe > > --- > > mm/gup.c | 8 ++++++++ > > 1 file changed, 8 insertions(+) > > > > diff --git a/mm/gup.c b/mm/gup.c > > index 9e332e3f6ea8e2..d203e268793b9c 100644 > > --- a/mm/gup.c > > +++ b/mm/gup.c > > @@ -1350,6 +1350,14 @@ static __always_inline long __get_user_pages_locked(struct mm_struct *mm, > > return -EAGAIN; > > lock_dropped = true; > > *locked = 1; > > + } else if (flags & FOLL_PIN) { > > + /* > > + * The mmap lock must be held when calling this function. This > > + * is true even for non-pin modes, but due to a shortcut in fork > > + * not taking the lock for the new mm we cannot check this > > + * comprehensively. > > I get that fork doesn't lock the newly created mm. But I'm having > trouble finding the calling path from fork to __get_user_pages_locked() > that leads to this comment, can you provide a hint? Both the comment > and the commit log are rather coy about where this happens. Hurm, so I see this did get fixed but nobody added the assertion to gup.c :( Jann Horn was working on this here: https://lore.kernel.org/linux-mm/CAG48ez1-PBCdv3y8pn-Ty-b+FmBSLwDuVKFSt8h7wARLy0dF-Q@mail.gmail.com/ However, there was never any note on the mailing list what happened to the series.. But Andrew did take: b2767d97f5ff ("binfmt_elf: take the mmap lock around find_extend_vma()") f3964599c22f ("mm/gup_benchmark: take the mmap lock around GUP") Then we had this other work: 5b78ed24e8ec ("mm/pagemap: add mmap_assert_locked() annotations to find_vma*()") Which actually added the assertion to find_vma(), which is called unconditionally by gup.c: __get_user_pages_locked() __get_user_pages() find_extend_vma() find_vma() So we've already had the assertion for a while now. I'll update this commit to make it unconditional and note that it already exists. Thanks, Jason