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 3C3FBC77B73 for ; Thu, 20 Apr 2023 22:23:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9E57F900004; Thu, 20 Apr 2023 18:22:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 96E53900002; Thu, 20 Apr 2023 18:22:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 80F41900004; Thu, 20 Apr 2023 18:22:59 -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 6CAD5900002 for ; Thu, 20 Apr 2023 18:22:59 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 31F201C6678 for ; Thu, 20 Apr 2023 22:22:59 +0000 (UTC) X-FDA: 80703195678.26.F422624 Received: from zeniv.linux.org.uk (zeniv.linux.org.uk [62.89.141.173]) by imf21.hostedemail.com (Postfix) with ESMTP id 38A4E1C000D for ; Thu, 20 Apr 2023 22:22:56 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=linux.org.uk header.s=zeniv-20220401 header.b=uWQX2u7n; spf=none (imf21.hostedemail.com: domain of viro@ftp.linux.org.uk has no SPF policy when checking 62.89.141.173) smtp.mailfrom=viro@ftp.linux.org.uk; dmarc=pass (policy=none) header.from=zeniv.linux.org.uk ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1682029377; h=from:from:sender: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=Xah23523mqBQohWHxtgP96LS5q9in7j2/iSJEIHA+i4=; b=IaaNqJQgYcHuytI725DzI8TJIbD6xC80+SpsiEP9EjwyBiui+8AJAzciTsMY4DiFrNU0v/ WqWLT4/sKFy43ZoGVod0vo4j26tHnmDEbeccioJEPGsBGSVU8pB9sCnWdVvWpXLdMGcI/O 7aCIyBDfzY703jKaKoswu1ZG/3cBLbg= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=linux.org.uk header.s=zeniv-20220401 header.b=uWQX2u7n; spf=none (imf21.hostedemail.com: domain of viro@ftp.linux.org.uk has no SPF policy when checking 62.89.141.173) smtp.mailfrom=viro@ftp.linux.org.uk; dmarc=pass (policy=none) header.from=zeniv.linux.org.uk ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1682029377; a=rsa-sha256; cv=none; b=FiUNt7oAtac845xZ0dOEv422SIltF9rzIu+24DBzfbCaHmV1gqzysJAX/cAZwf1ofGLtft aOm4XYOuipVkaljjB9MfE+iOfUOh4qRkL37K1DFNPDrLK6fRP5svXr1bCy946J8myV9ipR qIwlvHwpJF76RgSdXrOR4WqWGUgm8Aw= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=linux.org.uk; s=zeniv-20220401; h=Sender:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=Xah23523mqBQohWHxtgP96LS5q9in7j2/iSJEIHA+i4=; b=uWQX2u7nCtxAfooM1lBJbswwMe yrDts7jLwaUKxWtJ6KySS/gMr1q+DoMl298/FpmeMZG4cigTuZO5FA1JMQPe+7f9w5YdnDzljFdKo I1cKGoP5tNWRThp4wROEmTC8eeAtTatxsv+0x1ngADsoWMGo1705n8DrCZyQHFPTqFHajq1tOnI2C V8NHsW3Y7sjRuWVVDwsBrbp9Znx/xhLS84lHDoQDBcBldrLC9zC6Yyl164qI2zY/ilIRGIxUtd0CV nDYwXxea1x8FUCxsE6AxpwklMdoi9mi0J5KaxB5chppMC8CZDsViwzaQU+dPLjV8JTL7QREI+VJoo wppN3E/Q==; Received: from viro by zeniv.linux.org.uk with local (Exim 4.96 #2 (Red Hat Linux)) id 1ppcff-00Ayid-0P; Thu, 20 Apr 2023 22:22:31 +0000 Date: Thu, 20 Apr 2023 23:22:31 +0100 From: Al Viro To: David Howells Cc: Jens Axboe , Christoph Hellwig , Matthew Wilcox , Jan Kara , Jeff Layton , David Hildenbrand , Jason Gunthorpe , Logan Gunthorpe , Hillf Danton , Christian Brauner , Linus Torvalds , linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Christoph Hellwig , John Hubbard Subject: Re: [PATCH v18 09/15] iov_iter: Kill ITER_PIPE Message-ID: <20230420222231.GT3390869@ZenIV> References: <20230314220757.3827941-1-dhowells@redhat.com> <20230314220757.3827941-10-dhowells@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230314220757.3827941-10-dhowells@redhat.com> X-Rspamd-Queue-Id: 38A4E1C000D X-Stat-Signature: a8g3dbs7jiyidnupncg5xnag4ed4a1g7 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1682029376-387559 X-HE-Meta: U2FsdGVkX1/GXYxaG0SGgr093xJAW0Icl4vymwWXyTP5wgFm7cBd+wGvWl2DOf4JV20QumQ4XnSDJKqQ8s0QrjX5FAXc+0hyL6/ixMVP+mroNPOUTaNfyl1YxyXFBdeX8lIf4+GHlZm0CQhBXC7aoOZJt4OwmoTAd8ECU2h44P+wE6WsJngxMr4P/VNmTBhF65Xkc1wfY8lDe85pIuL3ybKwDVrPIGWyay0UgYNR9c10UnbsCiLHE3TreWIKEV1BKvlmVsvbMW07aYRpdUM9DwdNE5TQv2qQWYfYjRvg85idzSk8a8zTU1aHzIhaD/CUAZMouh9rCSAv/lt0X2Jq0nm6CwRxDMlzjKbmNaZluDfCstafAjtyneES6H1BWzdHcBmI4Cym2MYW/y3luJzubcuEOc5pEE3+dFpvfYyrn9UU9RAdNEm9urSiG2d//wG8NAuyfbpmiTv5EbsH8USMJ0odMMyqdxLKvxY1RiP+uNnjcL5dza6r0+s4a+WMWhw4+LMu9fhq54TqXrn/qutOhrDvyRW22lrDNJ9887fSfgb1e9syOWrkvatJglqi1OYGU2JMZLYNsr1dZXIwu8xmJvya0CBrikCsZdFcXlIk3k1F6TOaYj6HIJoSPNdS3ozuGjnq77llLIYhGIF2At+Y94wtKsex9diXHF10FmvreVIemO85wpI0R5E+lM4Db4pcIKUheO0umHc/WQ3gQrPYy5GTaaD9bUvxnpBUbhqn2VpBdO3Vvzm43JHhvl8j4SCgeivWs3m4CqIYKXrzp7+JnddQ7KzNhgL6U3zDV6RNc3kA13HQdwC9Hh4aLsI89vChL1mGdNmZGoRCPAYUul1yHVSXjuALiKpWI+Q9LrQirglMJG+7EM2cCLsqm61hCyHKDy+NuV12bwiT2RO4oMMHIVt1xB2/eKeB2OdvaG6qIZEhVAFYoTMio8XAskmCNvhqsNgKL9fOgIIc+anr9LD Ik9+sGNz RzCGmUo5WJ+yAtZ56Gw7yUeMPBHhs+UTfABMocTxKIYU+emmcneNlAT9P/iBStIAN6CGN3m6nRhIMafk6o8nmg8D2QwiaGnHy8zWROt3tZ198vvB/GVfV6eTHFklX+vQKfzM4xVd3fI7L6b7HluNGYRIF4rOtGnB/PYOItgfZ28YvaaWExLWNn7PofWilsrDmjca/KUQsWvHrzNFiiR6bMQ8TUCrhgluDdLvuPJPaljNKqJDFvI8TYKGq0f/c23TQx/SV+or2rHc5qUL5OCH6fWYqLJ0SQCNUm4xPalnT1pZiAf03AjKRwqxX5cl7c4niafzh4itFQDMH+Rglo023U61yONHwvPy8ij1ItvnD9PZS2tMcioZSa3poGFoCMrfqP8FPulSxMgxslCJ8cTd+RN0ZYw== 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 Tue, Mar 14, 2023 at 10:07:51PM +0000, David Howells wrote: > The ITER_PIPE-type iterator was only used for generic_file_splice_read(), > but that has now been switched to either pull pages directly from the > pagecache for buffered file splice-reads or to use ITER_BVEC instead for > O_DIRECT file splice-reads. This leaves ITER_PIPE unused - so remove it. Wonderful, except that now you've got duplicates of ->read_iter() for everyone who wants zero-copy on ->splice_read() ;-/ I understand the attraction of arbitrary seeks on those suckers; ITER_PIPE is a massive headache in that respect. But I really don't like what your approach trades it for. And you are nowhere near done - consider e.g. NFS. Mainline has it feed ITER_PIPE to nfs_file_read(), which does call generic_file_read_iter() - after result = nfs_revalidate_mapping(inode, iocb->ki_filp->f_mapping); Sure, you can add nfs_file_splice_read() that would do what nfs_file_read() does, calling filemap_spice_read() instead of generic_file_read_iter(). Repeat the same for ocfs2 (locking of its own). And orangefs. And XFS (locking, again). And your own AFS, while we are at it. Et sodding cetera - *everything* that uses generic_file_splice_read() with ->read_iter other than generic_file_read_iter() needs review and, quite likely, a ->splice_read() instance of its own.