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 83833C77B70 for ; Mon, 17 Apr 2023 12:56:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DDB738E0002; Mon, 17 Apr 2023 08:56:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D8ADF8E0001; Mon, 17 Apr 2023 08:56:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C52EA8E0002; Mon, 17 Apr 2023 08:56:42 -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 B425F8E0001 for ; Mon, 17 Apr 2023 08:56:42 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 884311C64CC for ; Mon, 17 Apr 2023 12:56:42 +0000 (UTC) X-FDA: 80690882244.16.63B1E44 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2053.outbound.protection.outlook.com [40.107.93.53]) by imf05.hostedemail.com (Postfix) with ESMTP id A03C810000B for ; Mon, 17 Apr 2023 12:56:39 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=kJknsXRT; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf05.hostedemail.com: domain of jgg@nvidia.com designates 40.107.93.53 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=1681736199; 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=3o/ZGVMHgJgCGsCcIUxvVIDrVElHRF3Kh5Dd3QooAyQ=; b=jLo56ErLzLAaMMFFYnNqfsrP+DZ3dkNnmupFqQxnAJ5n1prRNLeatrnxNBWuzKi0J8BWry B8QEuffzl/EbKAIr8riM71XDZUPr9Q4xQKYJzMOw+rZMyFBlWCbPqiRmbrnBaQxi+qyBkn 3htb6vRldmP/xhq1ch2A05aYniW0wpo= ARC-Authentication-Results: i=2; imf05.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=kJknsXRT; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf05.hostedemail.com: domain of jgg@nvidia.com designates 40.107.93.53 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=1681736199; a=rsa-sha256; cv=pass; b=OEIzLCrSkM80SwXPPbePKfU1+4ROmajXHKTBw2Huk6PiThKPYsFzhw8rysD3u/IebHhnF4 qg1CTLtMaFIVDuBRyUiJWSe+5FB/aknpB4Vn3Iu2VpgvSKBVhfUKQxGTvvajjJcHTPWSCK ztKJKEE0P38/OGpk2zjaM79nQSKeHWk= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CNNnHh8qliD75IkO4m77DgiP24T5e6+CADApYkhYgfaD8FJ0UbFd1rXPPEdl9LS6r8bSTZR+NKm1QDAJy+Xpo2yzS9HtR2LXfw7oMI1/YB3NtlnJw87dS909HmfzdwO5R4ocjoTcQqVsxV3gHpAu/0GJj6dMEVGGfXz0umWWa9l4sQHY7CPp4n5oeq12f7xDqFJEVDbjBgrlsU3D2n/lzqps09qFz/oAZlrcbh+cBE9h86TA1Qqvf10/ufMr/5TNSRiuXlmLpBCe6tijh76pvZRNAp8IRfu1+kGvY9z9GPnwJ7b4IPZVzg5m8uyx0I+EzUDpk2ZNheNAFmZzjZDAmw== 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=3o/ZGVMHgJgCGsCcIUxvVIDrVElHRF3Kh5Dd3QooAyQ=; b=k/krOZ32MarygqZ4BtJXccdkLj4kEs+paq8W+SeMhFSTgQTR6nndpBGxmQ9bWN98yn0jvWneifwbB0CJWgwdzx2zLJBWRVrHbZ2L3ngQ+y8vKrPMyWeFf/FpHyPjLEEshD/aIV3TDfC4zgefpabhvnkzWRtjO9oSAVpGBYUsOLZFZe6GSoz3jn12gCTVI7tZ8UmoQZXpD3keNfYPW7tQokaRq76IXTnIGPsW67pCj/RZiCp3dxCe9IDK92y1iCgPZiKZ73cNCvD27ccHk6o8wpdj7ee2SL+qAXYKI8Ih8nCIjTcz3u4zwdoNzDTpRI+6JwNfPOKAqezG+dXxWwSc0w== 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=3o/ZGVMHgJgCGsCcIUxvVIDrVElHRF3Kh5Dd3QooAyQ=; b=kJknsXRT+0MozHJ5+fsBVfi3ZRxf82y2oDwlc/53Fwv6YdsZ2DA1YOgwla/WOMyVGUexwUtbiiNIYldUmmy9BdOsTHqB6KsbGQOEuDxwKN/b1drl58E2KA0g19jU5nHpkIf0evqDJaltactVZTBbPp97gUPhFP6nDnWYhADlDuBPowh+uRYG2SaAOVC6pDo2LGNHnhVxowdrFuGbtzciLEavuqT/N/y1oKQZXDSiR+n99M0rfHNJ7dTzrTYoZBpUS8isHoVV8cIvMDRMweg/eZV094spBLsXReebhJjNMl4g8DCEcAgsLSokwxCTQQIFjnhB8mJdjyffc5eHwQBiHw== Received: from LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) by MW4PR12MB7120.namprd12.prod.outlook.com (2603:10b6:303:222::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6298.45; Mon, 17 Apr 2023 12:56:37 +0000 Received: from LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::6045:ad97:10b7:62a2]) by LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::6045:ad97:10b7:62a2%9]) with mapi id 15.20.6298.030; Mon, 17 Apr 2023 12:56:37 +0000 Date: Mon, 17 Apr 2023 09:56:34 -0300 From: Jason Gunthorpe To: Lorenzo Stoakes Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , Matthew Wilcox , David Hildenbrand , Jens Axboe , Pavel Begunkov , io-uring@vger.kernel.org Subject: Re: [PATCH 5/7] io_uring: rsrc: use FOLL_SAME_FILE on pin_user_pages() Message-ID: References: <17357dec04b32593b71e4fdf3c30a346020acf98.1681508038.git.lstoakes@gmail.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <17357dec04b32593b71e4fdf3c30a346020acf98.1681508038.git.lstoakes@gmail.com> X-ClientProxiedBy: YTBP288CA0013.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:14::26) To LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV2PR12MB5869:EE_|MW4PR12MB7120:EE_ X-MS-Office365-Filtering-Correlation-Id: 8c73ca46-294b-4f45-f3a9-08db3f432db1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ne1rww8joAIOjG56bsNvH9J/EFJwY+TjNJL7LIHWFLEPKgmZYdyFO8jh86HAB7XSh1Nxea38/8pJGQRFUUbgQ23YRWfdirn0uWjx6XZOW/WgUtoJgXgYnGwtj/ZPfZCBVe2J0jhGYSXCf9Rcov3bqk6U9FRdRQRfgitIfp0Ia20oL+oMmKIY8GLmoWVD610+lueMgyd12GAx2TXlaayUZ/noJMxoeiOxQOyypjyNUWE26W6pb8iUKf2qeH3KQjIrwR6wKoTmGNtb5sVydMQxpD0ca9URghu7gGxs2kxaQcOpGTbps7CzVW9HM8FeJGyV32blPFGL6Cq2TH8Am5MUWYAfEdvgm2LEAs8M+4Z9o4LdZzEfZVodFdBNJLRsoH8VBZpQZGXaSjM2Js+TDwazdh0d66f+XBKgBSdD1eFMsYptkCOZngWbGPopBnlasuBKc0cIdJw2D7x+1UOAlQWcgZVGDcCAzX5JSy2C43pEPKicJPpu1q+cr3rVJIIXTLXxseqz5ojE8Gwbt1LGSlovBuC/9aByeKEq+3tZiDtY8gKWFFuQ8ULqgEUDBgfEaEC0 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:(13230028)(4636009)(396003)(39860400002)(366004)(376002)(346002)(136003)(451199021)(4326008)(26005)(6512007)(8936002)(8676002)(36756003)(41300700001)(86362001)(316002)(5660300002)(66946007)(66556008)(66476007)(6916009)(6506007)(54906003)(38100700002)(2906002)(6486002)(6666004)(186003)(2616005)(478600001)(83380400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?mO91zWmvp+UPfmwm3K4XL60OB088s1VhbcLHEhVlt8zSGcaMvNwj8CW6NLDd?= =?us-ascii?Q?UqEgD1yOLMX24/WP2dqxad1d86Ww3TxRI/w6SIBHRYkOMgr5rZa12OO+MX/F?= =?us-ascii?Q?ufcz7US+v7ZogD1e0kXdbsZUig6j63f8nEeGS9CEsEoloQsv3KqXher0PC2U?= =?us-ascii?Q?CgmepravneCR//pK3GPK689RvvaOhYdlOJp2tckaIgAoC9c6wId4vjiGcCoF?= =?us-ascii?Q?SEP65UyN8Qt8JWffwzIm6J6XmQL/9bUUGK3kr4lHABem5uxSf44kEMYUIdlh?= =?us-ascii?Q?tKnTyvQXdqE1EPDgvZPFpGznjdXX01Tbb8EUgYfeESSBuwESTj2pZryYnfVQ?= =?us-ascii?Q?mSZ2rFsXL01uNgnfnEfNqJZ0cYGo73SYHMru5PeGMFXf1rucLrdYWnEpMW5O?= =?us-ascii?Q?nOmGK7aMBzTCG3/H52M6GzkBLmMm8DtyGJic9SdV9hCv8ucejHjllJcZYwnD?= =?us-ascii?Q?7vegRSIXAjNB37AvBUZPAbuy+dG0vP624uNyimb1ZzU+MrrBQ8TsPP1hz1b7?= =?us-ascii?Q?B3iIedDNY6R0zBDTgu/gCqF9rstu/qJtheJDFSElNgWs946baNHloPdmb2V9?= =?us-ascii?Q?iSsXcp6i3jLOrgTYC59CqwJvHyfHqdijzY3MacMlfh+Ezw52XFT/QnBhzZvq?= =?us-ascii?Q?sDLzYeN2Jko+mua0A8n/2X3rHin4QxDAAt1woMyxqj9FhJZg6VbLUGwQ2EXb?= =?us-ascii?Q?ly7B0/wnUxOFJ8qVyyjKEuc25W/s+n+QeASeNPMqomknu2A2m8H8tjr+afnA?= =?us-ascii?Q?23VFBhDR/tAWxfONsM6qP8N9Yu22ff4mCfUPXzehbXegHcIdmIkm0Bpsm3Qu?= =?us-ascii?Q?eqmitielCSGYqZ7e9w9gn/PW4W181jJQhTJlWI3f4biRLewsvBJUhFDAxMm5?= =?us-ascii?Q?f5HWemfhXfjS4XBy28KQ7Hu4WdSGN0l1WjPdcv+TtKmGGGq9mZJFsmaZa9jv?= =?us-ascii?Q?xev8FiXTOTcss0Snv3bg86cpQ02nkjmXnz8kywwI0QCLC1lPe+cjBXbckBbY?= =?us-ascii?Q?o3z5xVLr+aM2v0s4lKlD85V0GM4uM2IPLd/+RRdIlm2uQOokWADkbPzbdaRT?= =?us-ascii?Q?RWir+YvSCB6tRq6Mp8pfLpkjFHcuyumcDR9iDlXgEDcYT53LAW/1PXlxJLpr?= =?us-ascii?Q?AkRGiiYK9/FxN86YMACXQa133dBg3ZrHxqkZRsXe7EXZsRnLAsUeSMW81wvL?= =?us-ascii?Q?uPsw5Cm8KKxv6YA1eQiluYJTcpIdQWgSyQBEB9oKwSxX4gTyXfrBn1perFSD?= =?us-ascii?Q?I9jyJlzyqDadEQwKQ3KzZB7YZ6unydjnXIqTxA0Ns9W6MKjztIYacbq4BqMP?= =?us-ascii?Q?CJJ2FzBlvwgXekcKVxLhxnE8+AljATzHGxLfoFb/TSRYF2WekvIuprFHCsAI?= =?us-ascii?Q?4UqTNvLLOBkgHwf1gTO2f/javFtJJc2i/toD6l2OEyJYe6j/YZuYfTD6matR?= =?us-ascii?Q?Gr/h93J7K9gLWhiXG1C0Mr17m+dxABZvyMHnec7zUtS5uBypyTt1tNk9Llpf?= =?us-ascii?Q?5Ee4zsnyBKCxJLDaSZBc/t3qMejc0eST2cn1EmBI2Utw8lFJn5vq4QmVxKwD?= =?us-ascii?Q?808tm+7mcppagLWvHDA=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8c73ca46-294b-4f45-f3a9-08db3f432db1 X-MS-Exchange-CrossTenant-AuthSource: LV2PR12MB5869.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2023 12:56:37.1390 (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: 0vhSj4P8azZAVohUmq3ftzSgajJMHG4Ax5ddSUQZ8xZZ4PHK8smPOTIZ4YpBQGgZ X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7120 X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: A03C810000B X-Stat-Signature: xjans4xmcyq3nfism8usj5e5xg86gzd5 X-Rspam-User: X-HE-Tag: 1681736199-986551 X-HE-Meta: U2FsdGVkX1/73EeA1+NCGFhh/5A/EdFTiN4qx0ytyIIRhN88POPWtvSl6wdNg2ad7WSNdkI+mC3arl/3X65GQRLFQgsPjfqxc80iQmhqlmFSBV3N5swTREu9oVdN99W1t+jBOMwEfv795S80BfofhFeHTQC3XZvM0WrTiHEDP5vORc0gY5h2/2zmunY7tCCq5qD+nXLW8ou57LHASdGFqWnoLVLRxARm0u2vtI10T65N/6sQgzGNlX2M80UzWkd/sFGQswVtcwCibyQxHvrfOtrpfyWb3CwKN+8Xs/JyNUkHxDOS9vVG7Z4cskgu1Izlsglmm1DpOK3e9dvKpXUQkha1Mg2FH1yTe0fHO6g3pQviVjpVpKXStagoNjNS7L8WphUkJ4MtUd4MTTU9BaFfmCTuW66TxXQSPztVrp6b3lnXenW3ymj/pXwW9q7ru+vtE2g7oxEA081TSoU/YkgtFfyfZWI4xmYdRR3VlIU5N7j4iIhx2XfIdzXE+2oLbFWaituTpZHYQ9XQJBbnO49fFEOgYjMysluNvfloOv3eWfGISqneCJruWrgbamsHHUIlO9gfpUMmKo8HVrtOuBKX9wFkKWZkznJgFqLrWx3qDTkcVzHBoAKUK6k4dEdzWqAfYKZ/O+tV8q4+N6CFqaRuIvRub4JVRoyysId5bNdTGahl9ZXGeROF/9MgCXbNRTn17wA8ZZeDC3OvgeMF2O6Lua6RZKoxGb8RY/QjoZKcUvdCAxpBSfSNWMxFl4LiRvMx8Z2uJfHf10vpjkaEU39SCYcP1oP0G/kvi2W7/V2q6aktzcChspwj/Q+GByo2/V69T4/sFX9BaKUaO6QaQ+wQ4KpjkUWcMc27yduQfclESb59AaN9FSnPoCZTElVupKjr3eUn20PfARAqdtmdU/skhq4da9q4cijZGZiPUeCVSsXjx/H7mzqn4Mom4HCLx0jNJa/1LQ9dDN2gu3ZOXNl Y32AFvBS tlcA16bdiZjBNHl6Uw17bg7FUwBEGk58pFDMIWMHp/lrVZ4qxcgna4VD8MTsfwM0L0Q1F19oJ9i2jcbhYvU46LuSauzDXQZtKkHTdzS2eajcQiwBxEcPZtfYGveQS7LbdlA3hEDfrD/uw5GB4SduYkn3OeiOYD4gH6oRxq+tuYEsbdP+e52LJVTkMblpraI4X0KP/L1BfV05UJyjKaSaIaSzWR9jPTbam/OaIjMHKP2ksERb8Rx0BYnhjA9FdsgNiCTT1taelePlDfYIuFNN9piItHapIJ2OMxpa+IyywTt4XBiqXvefocpiTJksi50+MlGtR3tXxP+dNTGcoqWEm8c1y9FF2LDLFKx5h 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 Sat, Apr 15, 2023 at 12:27:45AM +0100, Lorenzo Stoakes wrote: > Commit edd478269640 ("io_uring/rsrc: disallow multi-source reg buffers") > prevents io_pin_pages() from pinning pages spanning multiple VMAs with > permitted characteristics (anon/huge), requiring that all VMAs share the > same vm_file. That commmit doesn't really explain why io_uring is doing such a weird thing. What exactly is the problem with mixing struct pages from different files and why of all the GUP users does only io_uring need to care about this? If there is no justification then lets revert that commit instead. > /* don't support file backed memory */ > - for (i = 0; i < nr_pages; i++) { > - if (vmas[i]->vm_file != file) { > - ret = -EINVAL; > - break; > - } > - if (!file) > - continue; > - if (!vma_is_shmem(vmas[i]) && !is_file_hugepages(file)) { > - ret = -EOPNOTSUPP; > - break; > - } > - } > + file = vma->vm_file; > + if (file && !vma_is_shmem(vma) && !is_file_hugepages(file)) > + ret = -EOPNOTSUPP; > + Also, why is it doing this? All GUP users don't work entirely right for any fops implementation that assumes write protect is unconditionally possible. eg most filesystems. We've been ignoring blocking it because it is an ABI break and it does sort of work in some cases. I'd rather see something like FOLL_ALLOW_BROKEN_FILE_MAPPINGS than io_uring open coding this kind of stuff. Jason