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 AA538C38145 for ; Tue, 6 Sep 2022 07:59:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 415A380267; Tue, 6 Sep 2022 03:59:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3C53580224; Tue, 6 Sep 2022 03:59:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 23E9480267; Tue, 6 Sep 2022 03:59:13 -0400 (EDT) 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 0EFE480224 for ; Tue, 6 Sep 2022 03:59:13 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id D8EDB4089F for ; Tue, 6 Sep 2022 07:59:12 +0000 (UTC) X-FDA: 79880910144.02.56B0CC6 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2047.outbound.protection.outlook.com [40.107.237.47]) by imf21.hostedemail.com (Postfix) with ESMTP id D5FA01C007E for ; Tue, 6 Sep 2022 07:59:10 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XaLmTY2o6ftnbJ/27vPewOhblwlOVwJOX1P0gzpp0IOPYfiZCZ4fLAhmKtYQb2vHP1HANaqgkjPGvZSCMEYJiTJEvGlfVdJqKBuGva3zlAPJlaMIkJ0WlvI2w1/mVP7WHdzTz696aWqcTkudqq0kNjzJIxjft9JnDrwN3zg7/iuAfGjq+VO9BNAv1AFydqESyfUhZpVgHt1Tu0+KX9QmYAWma0SF1/5TgTZfj9sGDR3jZGeQkJxhE7wajDYFVGrGbIGPNbZEDj1n+AF0D3v0w+rsy+ZW+7amPbaLI71gnXG0MFU8vhV5ColymkMImVMTE0jqdb76/ar7UpAA+FSJHw== 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=wNvOLQzdymwbkQafamtSqqFEIWTZYQwKnN+RaXcYcJI=; b=nHFmRGzcv5emiG2YvFAhU6+1mjke7lGDW9VLvoofbi+1n5xYujxqsxv0Niyd6nf1oz5O+yXtYDc2+30HYCQ8YXEaPRSWECX3bAwDIL8X+VVuoL46qFqnSbwzDLRNydrao80yqwDzBka9xlJ4RrYUej7NzLizUprOV6JXVTLssOWhIxGUOtbgvAPnZS9mfzcFubHHIV8nsBqvoqm2hpg5jq+XQGRFBHWttwRcnwJMwQa+ooyusivCJLW4FMU7NfEJvNOUC609O4X8M4X/1BCfh2iEfm6BfeeO6l/mFr+lFnawvHnKmcDWentKB6CxliP9APnaCAF49oWDJXAACKuO7w== 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=wNvOLQzdymwbkQafamtSqqFEIWTZYQwKnN+RaXcYcJI=; b=K4PKvLVJ2VrF65GFHZvFHk5Rxg94xZ8tjBqQvI/G6YZlp80D40h0tBLtLrQbHoEEM9SsevIzSRB2Ttmz8umeGdxIILL0qdtxNOYJ4MLUWqwdo5OPDBDWTbploFcZhYupsPW6Ezv6XsKTzUG3yZVyqeGchDM0hGGkohe5OirFjWwXoLCl0t369eQH7lzQdl26LE9GvKP1WeR5h2Di+7REStm3Hwm6odd7YZJKrZ7LNwuMWvy1ZW4FrJ91O/PhcZzLriTAUMwnamP3oJT7v9FMlVRHMIQiN6GcbdFlaswC6nU4pczuisb+ZL8tH2p+ie+DzWmKw67s3tAHWU78WclzCg== Received: from DM6PR12MB4140.namprd12.prod.outlook.com (2603:10b6:5:221::13) by SJ0PR12MB5609.namprd12.prod.outlook.com (2603:10b6:a03:42c::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5546.21; Tue, 6 Sep 2022 07:59:09 +0000 Received: from DM6PR12MB4140.namprd12.prod.outlook.com ([fe80::e0c5:bb15:a743:7ddb]) by DM6PR12MB4140.namprd12.prod.outlook.com ([fe80::e0c5:bb15:a743:7ddb%3]) with mapi id 15.20.5588.018; Tue, 6 Sep 2022 07:59:09 +0000 Message-ID: Date: Tue, 6 Sep 2022 00:58:59 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.0 Subject: Re: [PATCH v2 4/7] iov_iter: new iov_iter_pin_pages*() routines Content-Language: en-US To: Christoph Hellwig Cc: Andrew Morton , Jens Axboe , Alexander Viro , Miklos Szeredi , "Darrick J . Wong" , Trond Myklebust , Anna Schumaker , Jan Kara , David Hildenbrand , Logan Gunthorpe , linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-xfs@vger.kernel.org, linux-nfs@vger.kernel.org, linux-mm@kvack.org, LKML References: <20220831041843.973026-1-jhubbard@nvidia.com> <20220831041843.973026-5-jhubbard@nvidia.com> <103fe662-3dc8-35cb-1a68-dda8af95c518@nvidia.com> From: John Hubbard In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: BY5PR20CA0007.namprd20.prod.outlook.com (2603:10b6:a03:1f4::20) To DM6PR12MB4140.namprd12.prod.outlook.com (2603:10b6:5:221::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 854f191e-6af1-4505-9918-08da8fddad86 X-MS-TrafficTypeDiagnostic: SJ0PR12MB5609:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: W7Pqvo2CuFIX9TiyH/FdgxlrodWFD6UDMeedtFgFLpJ3Q6lcDB7odHxJzuLTsWZJPLT4EmKxl0C1NCRGLnIEv91KVnd9EWYA0PDWt7b+5lakx9o7llPvh6ClcGUeUUMc+E5J4oT74/LQ92nsLOglGRnPoY0jKl1j1MmVeM00fL+CLauDapaUwOx9rS56mjgoQKJs7/Y4upicS5w3q9XoTLf9hHMix9fhw3EZEzz2B0mLjkjGqaegsskLVRRwIiBSbtYqpCwj+by+aHf3fmGt9Ro/XJGas7z8VYtfjsO185ALtltz36NzoFfagN1m1K9rmPcKjE1BpU8W1DJHDHDCyt6iDtcjS9VjCNoZrIwSwNur4jJ/+R9GKGPPuFfPwRWT4Qopk81OcvmM/1Y82yPy93Kkg1ulPk9+Hfdl6Wy+LB6EcVbMplNBAqcAsdFXDrb543rEV1lqfcCpevC+ZxP8LyBFIjbMHgh/5pyC3+3VowTnLrW7/JzTKQ8NXOInZ1bFV6Q9yPWnRpbiccusbNlmhKfbheThAYXp708cAVYg3SKsjHPH/NKNgKipIdJqN/o7AbEw49ou1XicWmHaCBJoQmsml1axC2wKIPjkhGFaDs/kZohAjlO0XAL5W+zRdFsKlvphC9tovW/aLeJrSz6xVQuSXO5yuvCZCihBTHVlBln7cuFNZHnTec4F7ofd9DwRUmDWEI5iOe5niYYXxnDqGTX6NmUEg1fz86BoLeUxbx5xX7Rwje0gTZ0277xAuk/dVhJPPYLCTeBNDIaos6uHWv+Ry3UE7ORz+Xu6YcSOtp4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR12MB4140.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(376002)(346002)(366004)(39860400002)(396003)(136003)(7416002)(8936002)(4326008)(8676002)(5660300002)(66556008)(66946007)(6486002)(6506007)(26005)(6512007)(38100700002)(478600001)(6666004)(66476007)(41300700001)(316002)(186003)(6916009)(2616005)(53546011)(54906003)(83380400001)(31686004)(86362001)(31696002)(2906002)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bXFCM1FZSnpYWUNkbk5ybi82ZTlRUkNBOFBqeHY4VWZpcEpXVGNrVEFlaDFZ?= =?utf-8?B?R1pISzBqM3hRdEZFWU9uclpZNCtCYWVkZzQzY0RRRzc2bmJhWGVRdkFZVjVN?= =?utf-8?B?UmpCZmNtT3NEN2R0bTRtbUtUSmUxU0RMa0xFcFY5bFRaTVhvczFtL0JjeWxN?= =?utf-8?B?VWk2QTQ4Mi8vNkl1azRRekVicjVsUysxMTB5aVFtRXlLL084bUQyZ0dvVzA2?= =?utf-8?B?MlBTT0NreU8zOWZJS21DeGhnY2QwZjYveW1XalMvenludmsxTG1aODRyTFJq?= =?utf-8?B?a2liMG9vSzlnVUNob3J1c1prK0FZaWh2aXhyOVh2NFpDYUdUajlvaW1NSm11?= =?utf-8?B?VmtpUkt3NExKblovOVFVU09XTmdRRHdKNVJvQ2h5TSswc3ZDMGhsOEFSLzMw?= =?utf-8?B?cE1hSUNWRXRtd0VvSzZwU3NlVVVpTUYyVjU0WGtORnVZVERxTkZ6dXMrLzJa?= =?utf-8?B?dDl3d283bUtUazVsM1NYTG9GdnNXbHdUaER5U3A0S29TOFg5Nm82enkyZGha?= =?utf-8?B?SkFPZXVnSTZ2SVhNdEROVXBIK2czQjg3UnJCb2hXYWRRTXljSjhlKytEKzFV?= =?utf-8?B?c2pGVkhpL0VycHRtRFcwWE4vM1dTcDlEbkpRSStlTGNjeHBFdlBqeUNQUmNH?= =?utf-8?B?dXo1ckkvV3RxVlV0TDBQVzMyNFFIazJpTmZ4alNmMk5zNmxFQ0FFOW1mVGpN?= =?utf-8?B?UjZQRzhmMHQ3UnU1Uldka044NEpBWlFNYWIzT2phQy8yeHNreGYvcjZ2eWVX?= =?utf-8?B?UVpucG1WeWU1a09OeGNsbFQ2QnAwdXZId1o3V3pVa000STkrZGtkV3JvYVZR?= =?utf-8?B?RFYveWY0K0pqNVVGZzdtUzVtL1ZwNWxaWTBvVWtSMzVOb0NlQzRoRzFvVXFp?= =?utf-8?B?ZjBmVXhTTWJ2YUNGNnRQMWE0NHZvUXJmNnZRb2w4cGdPK3VOa0JieWxGQmNC?= =?utf-8?B?QVJzaDFGNkFreWdRdTQrZTE4Y0dRdXpPdEpzdDJTNnBDaytGejZ4bk5CWFBO?= =?utf-8?B?dmhIaFRpaG5DU2dPZUFwYVoveWJOOTRwd0RMZGRQVlRKRk5Zdk5ZeHpVU1Bv?= =?utf-8?B?c3NWOXJhb0tERkpUV1BwSXZ3YkM1bkV2Y0ZEZUliMkE3NlEzMWY0OEE3TnQ4?= =?utf-8?B?UUhPMVdHWnZvWUdjNHlwK01WRFhFWjlqVFhVbUNyR2hVeUVOQkczS0VVdUdq?= =?utf-8?B?ZnhOQ2tGQnJqa2NORThCdElUT2NzNSt4NlptWWE4Um1ZSzA5cldRZlFMVW9I?= =?utf-8?B?TXpuK29GbklTVWYzTmV3NXovTUl2Q0dkMjE4dXJkVU9XbHNkWTFjSjZmK0xC?= =?utf-8?B?dXR4bzF1a3Y3NnBtbUlUb0pVRFZlOUJMc01vbnBVV0VVMTBSaVJVbHo1K2dq?= =?utf-8?B?cXZINHJFcGtjY3lLUE1vaG9WUldkOVFiQzJWOU0yYUJGc3hqTlNWc2lsYmFK?= =?utf-8?B?eXd3dkNRdlJwc2M3QXRaQ3ZJaGR1NlJGN1BMM29CWHA3RzRWM0N4U2dQcHVo?= =?utf-8?B?SloxTTFmYmtFa2ZrZVM1WHljaFV5d2NKZm1VTTB4MWxHWGlXc095YStzZVl0?= =?utf-8?B?ancrV0x6a1kzOU05Qkd1M21tSjZOMXBxK0h1NTJtN094SmxKWG5KcjRaREph?= =?utf-8?B?SmJkLzJmYlNYQktMRXc2WXlFZUY0bW9COEg4MFltdkZrVG5GN2ZaZmVmRlcr?= =?utf-8?B?a01vS21jelk3dXZYa09TSnB0aFg5bjJHTDZpZmhzc3l6UG05aEYxd0J6bkw4?= =?utf-8?B?cVdndzZOeEF6ekx1YzduTW93Vm1JbDlnbldyaG10RG1OUmx5UVRwS21od1Yw?= =?utf-8?B?R3Y1aGFSbTNQLzZaN25laDYzZ2FXNkpyeU5HZHhCdStGTE8yaVp5TWNuME9N?= =?utf-8?B?WEZBMCtOZ0VIL2lsazlqc2s0WUduVDdBbml3MEJJSTErRm4yTWg2VkdNalVI?= =?utf-8?B?MmllYUkwZUdsN2FhbHlNU2U0TDlQZjhaaG01aEZYTUxUc3BOUGtPSnZYV0xE?= =?utf-8?B?RHFNeVA5RXVPdVpoWDArNVVhY2JzZzRCSGQ0SExITXREdEI2MUlNTEpaaGhK?= =?utf-8?B?VE8yMFRhZC92bFJweFUwSDlQOVJkYTgrVURveEVINTFLUFpXY1MwUjNqdmhv?= =?utf-8?Q?LkvOAWaVg/d6BhQJAuKv1k1BJ?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 854f191e-6af1-4505-9918-08da8fddad86 X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB4140.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Sep 2022 07:59:09.0201 (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: 2T6Isx3z1j2v+FzSuBMhCL66JGYL55tiirQ7tm1RRQLq8fPEKt8e5FroKRm9UMmEwJPkZRuM7NA2j+efPviR9g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB5609 ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1662451152; a=rsa-sha256; cv=pass; b=UAUYYStCOiRtWqXnKbc/iHbYVEh5GAdc6zi+UNuiKA6M7xw7xzL8bt1H1erskFeQZb5zDo ZQXIhYqHDs/k9RvJMSElGMeE1cczpjFbIZk32j3zPfv4m4bZ59WItW2wb/29ccGxZjc22n yWQu50JePf7yX2hrpDSLxgDTHmRjtRs= ARC-Authentication-Results: i=2; imf21.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=K4PKvLVJ; spf=pass (imf21.hostedemail.com: domain of jhubbard@nvidia.com designates 40.107.237.47 as permitted sender) smtp.mailfrom=jhubbard@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=1662451152; 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=wNvOLQzdymwbkQafamtSqqFEIWTZYQwKnN+RaXcYcJI=; b=NVYOEZKbonN5TP9K6WdTJXxTmhcIv24TF4765+37loPaHiYtNhRYzZj4Z6uB2+pghZehR7 3GHejfMVkp81nu6GGqtsL/m/vmggccu8pP/t37n5Y4T0OSitfQ2wulic8QG413IcLjUPKc Nd7DONKjPN3eiU4J5cRJVkBUF+puNJk= X-Stat-Signature: c1m9fu94w1n7fzsya857st3ttznfhd9t X-Rspamd-Queue-Id: D5FA01C007E X-Rspamd-Server: rspam07 X-Rspam-User: Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=K4PKvLVJ; spf=pass (imf21.hostedemail.com: domain of jhubbard@nvidia.com designates 40.107.237.47 as permitted sender) smtp.mailfrom=jhubbard@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") X-HE-Tag: 1662451150-247955 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 9/6/22 00:48, Christoph Hellwig wrote: > On Tue, Sep 06, 2022 at 12:44:28AM -0700, John Hubbard wrote: >> OK, that part is clear. >> >>> - for the pin case don't use the existing bvec helper at all, but >>> copy the logic for the block layer for not pinning. >> >> I'm almost, but not quite sure I get the idea above. Overall, what >> happens to bvec pages? Leave the get_page() pin in place for FOLL_GET >> (or USE_FOLL_GET), I suppose, but do...what, for FOLL_PIN callers? > > Do not change anyhing for FOLL_GET callers, as they are on the way out > anyway. > OK, got it. > For FOLL_PIN callers, never pin bvec and kvec pages: For file systems > not acquiring a reference is obviously safe, and the other callers will > need an audit, but I can't think of why it woul ever be unsafe. In order to do that, one would need to be confident that such bvec and kvec pages do not get passed down to bio_release_pages() (or the new bio_unpin_pages()). Also, I'm missing a key point, because today bvec pages get a get_page() reference from __iov_iter_get_pages_alloc(). If I just skip that, then the get/put calls are unbalanced... I can just hear Al Viro repeating his points about splice() and vmsplice(), heh. :) thanks, -- John Hubbard NVIDIA