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 6E2E3C77B73 for ; Thu, 20 Apr 2023 15:31:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9BE5C900004; Thu, 20 Apr 2023 11:31:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 96E2C900002; Thu, 20 Apr 2023 11:31:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 80E8D900004; Thu, 20 Apr 2023 11:31:49 -0400 (EDT) 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 72D8A900002 for ; Thu, 20 Apr 2023 11:31:49 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 1FE24402E9 for ; Thu, 20 Apr 2023 15:31:49 +0000 (UTC) X-FDA: 80702159538.10.1027076 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2040.outbound.protection.outlook.com [40.107.236.40]) by imf15.hostedemail.com (Postfix) with ESMTP id AD04CA0013 for ; Thu, 20 Apr 2023 15:31:44 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=HDet5De8; spf=pass (imf15.hostedemail.com: domain of jgg@nvidia.com designates 40.107.236.40 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=1682004706; 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=yFmFmXDSNUDIvOPhXNJOhfchTiMzDuOUILdEl/4PzS4=; b=QEiN5JXUIdfMp9d14hk574UYtdIlHQjLihT4qfE+yjqlEWhVIYWDMp7UtXXyEGZOo4hq5B /DyZ4HpuTJ/WR4W+dQW5JMWKzyuBtcgzBaK/uhx8cRe5Cf1Nk1tMV7sa7blxZIWxu9VdvT jbzqPrHSo1gITZDt/e3qGPEpgTxCt4U= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1682004706; a=rsa-sha256; cv=pass; b=NmL+rNZV6f0F+jxtEzm4mh85KK9SWqTASRV5ywpcyiWEqsAh3qex2cXgGAzO7f2S7NbIQZ 7QXVMt9XNwDLcIsIzIYgYIsr+uOvsPics7by8QYU0WMrg5GAevI+cMSCQSJ2PYcqce2Ppl FS8K1+KnUO653WrdTQr8+FTgygR/mm8= ARC-Authentication-Results: i=2; imf15.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=HDet5De8; spf=pass (imf15.hostedemail.com: domain of jgg@nvidia.com designates 40.107.236.40 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=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VqswfMgzMrrMwCT53P+md7VFwEXUUnYT6kTFIEXsBe/qjyIzwN3IffMC/W3wLkVhUC8U1sl1URwCJ76JHx8lIV9zrD8O/GnhtyrMJ7gw7ozyRAYAMwX53051G/ES6NUK+xnHRfO3Oiws56VnjeS8+3HyxMQhdMnkzZevcPB9y9++7ZM2iF7pRDhcEY/uC1eKgyganWsDipspqliBm9Zbk7pIjY/YJ54YgTbGuX0749uA4RABpCxkvGwJtzWIlYjT90q1XGjOHIdnr5YaEtiTLCA/9y2sXHDaSXafMFYGEBesdmGLufDxQqJvNGsNcQSb3LU5J/lEIykjWErb/YViiw== 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=yFmFmXDSNUDIvOPhXNJOhfchTiMzDuOUILdEl/4PzS4=; b=jUzaa7E3ZkYznCAX0FyjS0nm1sPYLI1Vw/YyAnl3kM9/whCyEHLayVcGKwhyeZRwox2hkLlIKWR3tgvGtys+d7oOd7VRsJ8EjlQjwpOJ6kyXZOqldmi7xQKWnaM7dxcWCH0nH+s1Hs2J66OcjJmbgfS2bwPyZCO4w0dnOhLSbJsirFYJDIvtdN7/E7A9QoWH8K9fElqTpDjpl6WJj1HEVTpNGMchldSXT8cl5nUi5lNNTWfU/uXcUW1gL4/Zf8vTk5TWyecWt6jELizqlXcA0z14s31wJ+SsXAfX6CeSWXOkpJmEgwuUSg9yZfMp4S6Q9DnznlgKsD8k5qj3husMBw== 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=yFmFmXDSNUDIvOPhXNJOhfchTiMzDuOUILdEl/4PzS4=; b=HDet5De8Ub1LllyOEwHM3A+9JC8Ns2qQ2wsM6oYBNqHlrMX728+SSEjl2/PG9mZ3GgvDbS9pAoWapczVTkHNbU4OpUDysGwwBG2ibwxASNGjwT29L2wU7Z7s7pGslgnL3+Z9xW4STOwmSbXJE4l8jQgyRl8lnzlXFGb/f4eZpqxKfud5RfWT1t0EIYEoMqCAF1WYKoJGDMLhDw3eusLU1myYGojTW+Z9OG4jFe5QqgQZRklKgjwQZVKnkLxhZwyiGZ+i6W/FN4+7I6p8yGmjeuZVC58rbl1S92Z2r0WIRESmyv5S/YwTNC10rNYCw0zKJEcdSK8p/XCV0lpZUaU9lQ== Received: from LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) by CH0PR12MB5219.namprd12.prod.outlook.com (2603:10b6:610:d2::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.22; Thu, 20 Apr 2023 15:31:42 +0000 Received: from LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::f7a7:a561:87e9:5fab]) by LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::f7a7:a561:87e9:5fab%6]) with mapi id 15.20.6319.020; Thu, 20 Apr 2023 15:31:42 +0000 Date: Thu, 20 Apr 2023 12:31:41 -0300 From: Jason Gunthorpe To: Lorenzo Stoakes Cc: Pavel Begunkov , Matthew Wilcox , Jens Axboe , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , David Hildenbrand , io-uring@vger.kernel.org Subject: Re: [PATCH v4 4/6] io_uring: rsrc: avoid use of vmas parameter in pin_user_pages() Message-ID: References: <69f48cc6-8fc6-0c49-5a79-6c7d248e4ad5@kernel.dk> <8af483d2-0d3d-5ece-fb1d-a3654411752b@kernel.dk> <5e4a23f1-c99e-45d6-8402-6c2df8fa06e0@lucifer.local> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5e4a23f1-c99e-45d6-8402-6c2df8fa06e0@lucifer.local> X-ClientProxiedBy: BLAPR05CA0032.namprd05.prod.outlook.com (2603:10b6:208:335::13) To LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV2PR12MB5869:EE_|CH0PR12MB5219:EE_ X-MS-Office365-Filtering-Correlation-Id: 18638c1e-e81b-4326-9917-08db41b457d0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: M8Z2wBTqiLT+h/wGfIFH4MaZ9nUxBcmAvIMli+WbjWVQP2b8+DDT6pYREJz68JGKLq7jdeSm5sgQEBY/mCiUamXjyFOgZbznYB2LmYeCFVzR7LTWKPxl9Hin2C3Rkmcgg7Afi66QHdKQ6SlpRg+k+H2U6fbTY0ktnHmf5qPI8QKhza/UiiYUz58/+iZkNazZjz06UywKQr85t90+TtBICaDEoTJmVq3T30tydC1QMWs35QUUAqLkY10QVUvXJuy7GtYIt+ogdcrZENTps3awrWaqhdQwgvUFrGGZw9AxUrtNNvThA0Xy1MDDs9ww2CjLBlyOE4i+f8DQTOYpMcBPKQp8M0a15/CnnMECVnBJjJF20wYpld9oPZdbOkIJwf8kwO7wkDt0DKbS9Joey175SMPfJkajI1byO6BQMN/L+2WJvLiDBLwE3JBlrlArv5scDDFVP+eFtuoOGir+KKXQ0s7qoxyNkcuuPsTZBLkDVDSlbuzZaXSramXFDDUW90j0fHHDsVUAuf4pvA4rFPK5cmUMtIoFmd8b4ehkuXgEueFFYlDoYvEaY2eOVPHnfvKQ 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)(376002)(396003)(366004)(136003)(39860400002)(346002)(451199021)(2616005)(316002)(66946007)(6916009)(4326008)(66556008)(6486002)(478600001)(54906003)(8676002)(41300700001)(8936002)(38100700002)(66476007)(4744005)(2906002)(5660300002)(26005)(6506007)(6512007)(186003)(86362001)(36756003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?TSBso2i9mvH6W6WoQroNaNG2bfiujQtgWBpQujKSEpxl3EUPfkXgTBbr116p?= =?us-ascii?Q?AEZ1pOSh1v5lwfbtBTVWYwnNhMqB52ZMppZ7kXUTEBIG7Wjx6JdGFhITjOVS?= =?us-ascii?Q?J1b09WZmNWygtdIn+rH8Gb9kd+KkpZuQ2jzf9Xil23eF7cmI9uJNEw6vDjNH?= =?us-ascii?Q?rj5gU4oDjKvi5jqFW/FZZqhqteS3hsXL5D5wbAbMbkx/EbkcseMG08gBALwc?= =?us-ascii?Q?DrGxPIIAB55/l5J20Kc230biuS6mTucDbjMKs/fAP+SUToJYf+Hp860ywggx?= =?us-ascii?Q?ivEjP8W5NnxB3bRGcJ23rwMaC1r4CiG67FBL9NkgoF08IIU95YNsxjYanN6U?= =?us-ascii?Q?0mJtAy7y79Xl9ECg7RolsrijZqYqqjPIsXzG4rgXIpLVNj41J1hlrAsa9QxM?= =?us-ascii?Q?n59ybM7eBpfdIEwJdtjjwLhzyjDmWf4qkf4LbGytukVYGxV0Xv750rvZrmdI?= =?us-ascii?Q?IUOoT6HAl43NnWBcRkXME3/VgOEGpYmQH7SUaFVubg7KRMFLSIq/5WFpGjvo?= =?us-ascii?Q?KQpGF9yzZiVrCxWiSdpKVos0nOxQZGt1Zy+wS46kp+SE1WMsvuYaF8Ccb4LM?= =?us-ascii?Q?f5aB3UGlInA2eyN9tXD7ZYT0LsjVqQvVi26oRLmQPwoSDC8eGyJwpKY7SiKJ?= =?us-ascii?Q?tvEcUCxCyNmb2gf2gPVoWXC+wWx6/jWt7SJHmpTAYFhu7huuBlkFPUpDS0K8?= =?us-ascii?Q?11MXoE2SpDe3yrrdRwKPax9kjaGdrY7m9j6ecQfO5KhIqPnCAVtcdeI0O5PS?= =?us-ascii?Q?ZP4mxBoJtl5HPbq4fBmNZdIY5kCg7wrGt23hqpJpXBNI6aP2+41l9N39MK8p?= =?us-ascii?Q?Vj7dWKVavelOL95h+WEAFGi40M6X7MMgTov2ZO1G6Khr/qY4r/YRouZw4jUt?= =?us-ascii?Q?1H5KKAJfHa+Z6BdWHH5efVKjHfQXj+B2ElXXM4bSpFOgHNNMHK9IuJYmZUlC?= =?us-ascii?Q?nsTdEBzRY4VbNyDEdZ5l5NTjuuwFa9kRtplh55YIRQ1z/TTD7uPfHbdMD3CG?= =?us-ascii?Q?SIQYnI0Wvxbv0I5Jszsb1CVhMc8NYH/U7ijLoeFilHKA5pCjLwuOAvB3d6ib?= =?us-ascii?Q?xQrcAeWy99rLjRpjsh0meDoIyt/ylAAYz2W1QLmdi9mcv+IH6oYJ8xPg88Oi?= =?us-ascii?Q?JpCOxq+4E+RifNb0jp6xbxH1PYuTwdMQr84yNlEvqq6Nkk6V9ykI+rb9ZZ2o?= =?us-ascii?Q?g2YKJi460D/e2sz5EdVyshjUuuwv40MFmoaLF3nnP5T6LMwp2JlZCcG0K+vM?= =?us-ascii?Q?F2l4RmVESkDfsKFc2FuJ1jFb2+Rzy6/zSyrocwKUJCN9ULmxwH/PNvtx/7VV?= =?us-ascii?Q?HuyS9uZdkzIZ2OZ2UEOXhPXGhB59Jpr022aa1Gf5WOV4xz2VfZT3qsV6icGe?= =?us-ascii?Q?jcl+cAgY+DRdBn3e/diLfakt2ANk3SH/v9Pfgsrloq+rhO2hahrWg0oqeUqQ?= =?us-ascii?Q?Gm6scLL8GRdr4h92d3QAgcD2UtwJGwmPbh/VfPFBfj9GQeSykF+eZPrx/OF4?= =?us-ascii?Q?ty0dORa3wh4DffVvyaJVkbvXKh+obDe8VcG5M9iV1eG786j6XBk6MLnWz7wT?= =?us-ascii?Q?yVf4baIykXefCmnSWnvXgIOWZO6h7DiUtwYwSttD?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 18638c1e-e81b-4326-9917-08db41b457d0 X-MS-Exchange-CrossTenant-AuthSource: LV2PR12MB5869.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2023 15:31:42.7773 (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: x9217FtAGwNl6BmOulaIkJSFbdPbQH/BByTSsR+YLvoTPvk47GQ4yvuSLRqI9jOy X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB5219 X-Rspam-User: X-Rspamd-Queue-Id: AD04CA0013 X-Rspamd-Server: rspam09 X-Stat-Signature: 8mcpxe165a17fc17rrspafaru8yoggt9 X-HE-Tag: 1682004704-883794 X-HE-Meta: U2FsdGVkX19UyRzcWCl+9F5CCWaj7okGwX0jwCzPZ9MzsLdsYoWqdid5Gfu4M5KcwIXcla930SpM8SJ/3ikqSYVYkxbs8ZXrqGx2udCXJxICikxUuWRA8wA6iIRscgf8y9RdIDtp6rn6w6N+GcYvogTxLFC5L5J3HW41HyYjywTZPUWWMTX0Rd7VvjZOcAxbDeXY1A4Xun8Dlhp6L6N1+lBFG17Q5y4/7VHXNt0lIyrEI1bNUVr9wujfx5Xp2ZgvBHsNUtDY9soQsflOu3fQPiZvdHgC++1cgHQ9KhmyVAHNe/irBa03wZpkQMvSk8JBvj0MVbKLQsg0rRZ34cJzCZRDkrOg6TDtZvPAsiMLVg9polI5iZdzaw2lXOhzg1vrQZfeiagUlATxxlcoEPfHID4KdZHJf8Vm7lT87ardXC4LNVDFCaq/YqsayliuTTWjtvCDGFbfXwR63fbEAyO1h0/njKQnQZTKy4emWxILZOqkNyN1X9VIJtO5Dc4hEVMAM5JeVMoA2rtlPgeMIA+J8NhDrETyfgWqPDBtniuveseFDNa5Yea5/vgJVUIIe4H0QhQDJneTMaEtyqAOhATPitIUSP035AP7XDQzvVmoK0aFzvayVl5P4qjVcljawcI2lDpez8OzrIX1TUwGCeOacXBLq4RfzbTXpOfkC2CWRmuhjDcbbIg67Jnq/11kriNeh0L4kOFXGBTUEpOhDhPTzEGZGybPWUTc36OZ5wBlnDIuK/nYd4607RL5Nkcwa7JIn89pGkx+LwOwH5EOHFByb1liUduj2l75ogvBUPzwYqJGA7Me5TaZ3f0T7XubErmq4dP+VN2k+BLsi/yJtaeV7rSdTlnRSqNwHc1M3WEBbD1fYAUczs9UnhbDfPonLysq8J3k3MOQuyeHMxEgR8B0zkIFjDoPghzPm3bZjQ9AQuWRdKf4HUJNeGBNKmoXgcY6buWdMQpv7bU8aLCcQxS 16eknylu a9JkJ6UWGLljkSDCioDBR83QJZNrQWxn/Fq6NNAFlMYJXLBb1/Eyc9T5yjJbXUGrZvB2rshdnVIG5Lss74xeSMPhUSjMzyf45RgCqPGlgClf/ByVdvuEo5QDknwZjyKPXVzVz2M21bRS5eti8iidOtZfTJa9zsMzLXKtc5SuBR3Z6aK6tfK8nutC78DPqPewU4onellsi7zO/HKvk4Y/uvT1WkfPKLLh2vDZJwLPiLv6bDgIfM8oLOlsEbx+/bYE4N8xyjCHknlQTeQh0yhLpM8u7TFQSDOt/tz9gDyXftp2sj0fDi4rQ+rFUPfE8yCm+9GBhtCEYXG1crtjMwLfQ3wpq9/A6EkdJFlzb 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, Apr 20, 2023 at 03:19:01PM +0100, Lorenzo Stoakes wrote: > So I guess the question is, do you feel the requirement for vm_file being > the same should apply across _any_ GUP operation over a range or is it > io_uring-specific? No need at all anywhere. GUP's API contract is you get a jumble of pages with certain properties. Ie normal GUP gives you a jumble of CPU cache coherent struct pages. The job of the GUP caller is to process this jumble. There is no architectural reason to restrict it beyond that, and io_uring has no functional need either. The caller of GUP is, by design, not supposed to know about files, or VMAs, or other MM details. GUP's purpose is to abstract that. I would not object if io_uring demanded that all struct pages be in a certain way, like all are P2P or something. But that is a *struct page* based test, not a VMA test. Checking VMAs is basically io_uring saying it knows better than GUP and better than the MM on how this abstraction should work. Jason