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 19ADCC77B73 for ; Wed, 19 Apr 2023 18:35:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A324B6B0071; Wed, 19 Apr 2023 14:35:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9E1806B0072; Wed, 19 Apr 2023 14:35:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8F7D5900002; Wed, 19 Apr 2023 14:35:42 -0400 (EDT) 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 8111B6B0071 for ; Wed, 19 Apr 2023 14:35:42 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 480C21C6416 for ; Wed, 19 Apr 2023 18:35:42 +0000 (UTC) X-FDA: 80698994124.26.D14DDEA Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf22.hostedemail.com (Postfix) with ESMTP id 1B42CC001B for ; Wed, 19 Apr 2023 18:35:39 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=qxsnrLgH; dmarc=none; spf=none (imf22.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1681929340; 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=J+e8Y5sVsLCpZ8zZrbcZwsxzd3npeKq9qMhgQw1OPbQ=; b=N8yPn4ROxGpYY9EdJK2pDP4pRsVoEU+2sbB5p7r3aQ2RW+4LDrUbaByC3VLixUlQD4bWti kICPq1i9YFGLnteXxmiP+FXB4c1f284FJgT1ft4jUZo6PpjGg84rj9xaHSj8mcNepAajT/ UwYc/Yghea03EhE6NEJll7Dl0v17afI= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=qxsnrLgH; dmarc=none; spf=none (imf22.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1681929340; a=rsa-sha256; cv=none; b=jqtqg2ayjQb4eHBNRAi/4Q00SaL1mXNx15wpQmQ2nZn/lfJeds9By1/yoPuJj4SfWU7mzm FnaOg1QsSCb8TtROGfDBigCg9VEk2snNHh+BTHsMxb0rM0BA+10Se61HlierhGr5uEjyZ/ p8kqFIw9NjXM57tTOvyB8WN8PL0SreQ= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=J+e8Y5sVsLCpZ8zZrbcZwsxzd3npeKq9qMhgQw1OPbQ=; b=qxsnrLgHRIvUBWqr4Xx3LZq7P6 Qp2XXU3fs8HrlrJE75NHo8J7K7fgbknc7DTc+5kGyxGo+D+HA/mGPbeT1JDcmspnMAkjd/gzijwOj 307c16xkj+f4elD7HuC0BcNyenFEn17uElUnGKpzcIdbHsIzCepVXlP6wcc97bhWMZQqdfosWNmeb gyCApIopSpMvac+SgmQ1p836Mm2qihQPhcRJvUXfdXvZPNylPDIZM3t/bICFZFYkIRV3SmJy8gg5s 6ZNi5XEKsRj1i3fh5bczWib8ADNLcoBWb4l5mR9xuISTnkLA2pj1RfdGuk3nilkvWwg8ohyBbH6tV 32Pt1ZIw==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1ppCeT-00DUSu-7J; Wed, 19 Apr 2023 18:35:33 +0000 Date: Wed, 19 Apr 2023 19:35:33 +0100 From: Matthew Wilcox To: Jason Gunthorpe Cc: Lorenzo Stoakes , Jens Axboe , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , David Hildenbrand , Pavel Begunkov , 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: <956f4fc2204f23e4c00e9602ded80cb4e7b5df9b.1681831798.git.lstoakes@gmail.com> <936e8f52-00be-6721-cb3e-42338f2ecc2f@kernel.dk> <69f48cc6-8fc6-0c49-5a79-6c7d248e4ad5@kernel.dk> <8af483d2-0d3d-5ece-fb1d-a3654411752b@kernel.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 1B42CC001B X-Stat-Signature: sat8nuf6jxpehd1ic3kjcm4knfkre8gp X-HE-Tag: 1681929339-240431 X-HE-Meta: U2FsdGVkX1+FwONXdx/6sjxP+pW49S2CFO3+c7IkXulG2Uyj3vh5iGIELGkPC8Og1fgn57YtNbIfHncqeotr6O1J5GGGBAU5EqoaRW2jayov/v+fJJDjdjrNkbLq+ZC8s20fN7qK8cD9XiYipf4dKZiBcpacSSSeJrry3lbNuRdfqDNT7QRwJqLK4ntuJp/4w17IntaersvElbcWKe0+SEg2CLRd/jogJVNSNBnAhu6NpenE1s2nfDnV7RYwbLgd9kNuEunwuA72kRC1h1QcqZFgWdiyHs40RDHdN8iQinZuyVMx8mQofsMqmeA/XvxBt2lCTYfXOTPA6iNR5tJVxmQeNyVaLqWTjhpuxXY1d9w06oaxL+Gn0PGORn6yyQJ7K9oQkam+lIAgCzWcrqepOeO+ZB1q61GSgbSyQSIdiAn41RAIJ+MofJTqpi8Cc6Evjt4ekc+4RSym7lb3+SgszEX21hN/m8dVCoP/iSvXuOlRMQDgPCaRLv2eZUSWZzeultV7qUFEE/07H/cgnqgGknDLbVIZMqqedTg83yzzf5d1g3AakwFVKT69EP/WGfTEsb/QMIJ9pywQAdCujoXLuXWgvkVtzTMp5ZvOM6lLRULdQRwKvwJvF7sQkYI2XjKyXzMr1CAtloN7ubOj2FdrF0WP1FzQo5MIUyIXvFDFU2r2DrYOwYAJBFOaKfQX+PVRGtrA5Bn/dLVIkpeh3zsWRFrLJ3tDYZsWNxuV+uZmIbeDf/D39/LzasXtmZTgJAivUGq2NdQ+8X7DU0qUodTNTzMJww0xpGTmmrrFxnIuiGNyASpBOA37yT2GZaid1RZBJ9B1gpFiveD492I1Xy/3MCjbGfRJq+/ODw6petVkLfUx3jRHQ39Lwiax7hTJdT7dJrrNwEu3bt7Lr7/HTppOUw9KYSZOB3gP0M058lcEMF/MHhOhZ5Cxcx7Bk/RzgkqljYtYVse9lkzPEFDphSg OAeOxASP xOq9BCkiqDso/68WnMscZ6pb3/FaN2AL4paMFAcjyFEovr8xceQMkTWcLvp9x+BzmJ2n5nBK1AYAjUqmYNk0dz7Ynw6pG/y9+WGZqdxqpE66lGcE3QmB1h99lVbKKbh03RkixmieUa5u6WbcBzHwoFA7ocq/Fm9DIBxyMtFhYxIrBDYXA9TW7kDfAwhXX4ymjDR68fXMeY6Mo+NRx3mKSr67LAe8Tfuet23174krcgz5riFaLLi+45UpZzaE2PrRrtCCLWxxIg+QbxrAyzb9DA13KNUSE6c5oPB/YV+m/cVkBiLmR9rGmCGRsNWdM7XiMK8CfC0RQBH9NgrllIi/ZM/NXn6nOMgYSmmS5 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 Wed, Apr 19, 2023 at 03:24:55PM -0300, Jason Gunthorpe wrote: > On Wed, Apr 19, 2023 at 07:23:00PM +0100, Matthew Wilcox wrote: > > On Wed, Apr 19, 2023 at 07:18:26PM +0100, Lorenzo Stoakes wrote: > > > So even if I did the FOLL_ALLOW_BROKEN_FILE_MAPPING patch series first, I > > > would still need to come along and delete a bunch of your code > > > afterwards. And unfortunately Pavel's recent change which insists on not > > > having different vm_file's across VMAs for the buffer would have to be > > > reverted so I expect it might not be entirely without discussion. > > > > I don't even understand why Pavel wanted to make this change. The > > commit log really doesn't say. > > > > commit edd478269640 > > Author: Pavel Begunkov > > Date: Wed Feb 22 14:36:48 2023 +0000 > > > > io_uring/rsrc: disallow multi-source reg buffers > > > > If two or more mappings go back to back to each other they can be passed > > into io_uring to be registered as a single registered buffer. That would > > even work if mappings came from different sources, e.g. it's possible to > > mix in this way anon pages and pages from shmem or hugetlb. That is not > > a problem but it'd rather be less prone if we forbid such mixing. > > > > Cc: > > Signed-off-by: Pavel Begunkov > > Signed-off-by: Jens Axboe > > > > It even says "That is not a problem"! So why was this patch merged > > if it's not fixing a problem? > > > > It's now standing in the way of an actual cleanup. So why don't we > > revert it? There must be more to it than this ... > > https://lore.kernel.org/all/61ded378-51a8-1dcb-b631-fda1903248a9@gmail.com/ So um, it's disallowed because Pavel couldn't understand why it should be allowed? This gets less and less convincing. FWIW, what I was suggesting was that we should have a FOLL_SINGLE_VMA flag, which would use our shiny new VMA lock infrastructure to look up and lock _one_ VMA instead of having the caller take the mmap_lock. Passing that flag would be a tighter restriction that Pavel implemented, but would certainly relieve some of his mental load. By the way, even if all pages are from the same VMA, they may still be a mixture of anon and file pages; think a MAP_PRIVATE of a file when only some pages have been written to. Or an anon MAP_SHARED which is accessible by a child process.