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 944B6C7EE26 for ; Fri, 19 May 2023 08:09:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1403F28000B; Fri, 19 May 2023 04:09:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0C979280001; Fri, 19 May 2023 04:09:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EADA728000B; Fri, 19 May 2023 04:09:34 -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 D6D1F280001 for ; Fri, 19 May 2023 04:09:34 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id AAA131C78CB for ; Fri, 19 May 2023 08:09:34 +0000 (UTC) X-FDA: 80806280268.22.5C4BF8A Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf17.hostedemail.com (Postfix) with ESMTP id 0590B40017 for ; Fri, 19 May 2023 08:09:32 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=3hkfsW6g; spf=none (imf17.hostedemail.com: domain of BATV+aecf67361b95543ec79f+7208+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+aecf67361b95543ec79f+7208+infradead.org+hch@bombadil.srs.infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684483773; 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=rN0X/XLgI1H9n9vRzMaxHiNIPrJVP5jdj7ESUMoVA4c=; b=711MvEwfJJNiRrZMnvYRO6zOpTW7DOQszqnQa2LzffP9rXZ0zBEjI1q3KhBzwZm4yLqVMg 9NsB8gf77QTo8Z2ZUPPTEzzrMQ7/vvnyfWHNApbrEFdEb1CJG6oUz3pkIS9RUruDmPKNms iSsqsKv1/48Yg099MpfaZBc9pzAr2Dc= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684483773; a=rsa-sha256; cv=none; b=5h/uumQKD0THrfyjNxxYcKbyfJTklUoGn96z4lv4XvQhwUzplp53gG936jUIDSiwFonEAb vUHHuY4U3JKdQsZn/d+4qNFscYfRfqjUfyAoGFVV99wMa93QOVCQt1rPsESZjiIv0Wq5Us RC+HvRraMz/4QHc72eWGJu/wreDVOrM= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=3hkfsW6g; spf=none (imf17.hostedemail.com: domain of BATV+aecf67361b95543ec79f+7208+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+aecf67361b95543ec79f+7208+infradead.org+hch@bombadil.srs.infradead.org; dmarc=none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; 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=rN0X/XLgI1H9n9vRzMaxHiNIPrJVP5jdj7ESUMoVA4c=; b=3hkfsW6g5HJxxVvstAtx/nMk9k S37soTRQSDBNY5Q4G5cPwMXY4bgc4us5+JjZcJG7uw/6MmP7PkyGvXkqONdegb+V/pAkJ/7Y5sLDa Ga3jgFmYcGMC8zy9e6p8PoCsVwquDIJT/bCvUNXxBJ+Y1s3YEBP66qv5uYClVIizRRcxxiKIv8G7n IycPJ6ii3xtOcd0Tsx/K0+BTGkPB6BYhH8YB3gc5M2sFWr/S879sO0eHIvyEW/snkhfXI4BBUWzIE TG+EUq3Q4VT1cWiJUW42c2abfWbOxmnEqwUzoJFo/VUc3nSaTAk6mtAnNBaQtMhT3lup4wCRMQISY BFYggVOg==; Received: from hch by bombadil.infradead.org with local (Exim 4.96 #2 (Red Hat Linux)) id 1pzvAu-00FTRH-1c; Fri, 19 May 2023 08:09:20 +0000 Date: Fri, 19 May 2023 01:09:20 -0700 From: Christoph Hellwig To: David Howells Cc: Jens Axboe , Al Viro , 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 Subject: Re: [PATCH v20 03/32] splice: Make direct_read_splice() limit to eof where appropriate Message-ID: References: <20230519074047.1739879-1-dhowells@redhat.com> <20230519074047.1739879-4-dhowells@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230519074047.1739879-4-dhowells@redhat.com> X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html X-Rspamd-Queue-Id: 0590B40017 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: wf1ej44bkkyrjd5bjij113zx4r9fh3ez X-HE-Tag: 1684483772-46010 X-HE-Meta: U2FsdGVkX1+hcGyAnwxhkKl+59UKoWntFPmzD7Pbhv4SqnhvyQYKxYeR9VRud1TSveAVc8uPbTvJEa1plE+MeAvXO31IUD9ufuUdQZP6Amz3R1KzUQ0jU/VSJOQD70+LrRL6bp+nKAmd7QX5sQKhj4vWkkjY4WBEaJ8km7FCKijcNzLdLRrhq7r4XqymYRhCso3Cbe6FZs6voiiJc4RnCvnMm4yz84eZvYMQhdCobCmdIuuz6mmyPeuWKKXBEMdMBQJzGUdWrmCNvjks2L37RtgqJO6ltVo8pycRR9O9w8PUFBFb7PhBccWTJNkSQNDPEy8+USnS47e0ER35JWJJvsKeDY2aFgz+VQ7LGE2dWgicUgpkZ1ZRReAfUmgprsBlBWvHAXKQdVFuh5UParT9vQWfuEMQjsZu1zJhbrIawCf9+QLyfot8MruOfTtMJ5yOydFKg6i52gxyD76ASbw+rwypPJ4u1b2/VlC29+/3+6OdUXKZBbtHQlTK69UgtjreINTCmgF77iUbQ6cDzZAu7MO8RQlgQ0NgCYESfDePKSjVw449NCZKun8DbQDxCVwLz5fZr37tUfl+19otaN+602nO59RTm9HkNxNbJvkNY/JNugJt7YYsohHMqMc3+6SAA49elDBYok2rsaSjmLOwEu/peUetKGmZG8/4uuxK5fjEBwPOuMgXAWOJYiCuoZk2LlG4E594QkpqciwzUQNIE5NMH/38wm6mZLcwNMt5A+4IUWpv0qPUZSXLCGHiUxJXVJy5RG/aeFFGKcGQD+1TGKJwwu5+xNetcEfPfwb9zZN4Yft1mOBOcPnDhpYOngvbvyhkAXvS4J4X4FQSR0ye6JuUefepIzzZK+N56F0cTlYFq4k8EUQr8N+1l5cmFARhwymyrFcUbfEtLD7BbPrHYtp4v8kGIeJ8k7frB17nc/pWlcyqHnjLCr4pfS3GAPnIfyK9Xb+b3i5u7GRYCdF f62jpp2h T+skbtgThx8eKy5Nm6PDUysCrLarY84EeFpXF5g9r8aHnkGwX8JQmobXketGi9dY2MvLvSpPc0j6lGq4jFQQxSzcYGR7Yb6ie1HMUhkfWJDzLppMRU1NcYX9v8WwxZW38R1QyXLLsbHCXf78NQQrRqsVffsoT3SGAwJXr0fSXU6d312YJeUT4LC//d6e/H0G14sKEBbpo0RZs19cQFtpxGXqmwTXskfnkNpApKFqLN+VhhrI0a4QyuGy4Chyt2ctEwYMHbVru0T0ki/tAopf77vVtzaWAkwXMd2uskO4DjSPW/4zr4s7RJi34Tf/hDvQ+jJhjMGUiBTIducIJPOXnoKjpC8bQd3QZ1n596tblJZjM0ogdLQo+2U414xcyQo16ZBHFRQCmYTxFUxRfJuo6YB3W18CkuIOOv0tJEpjPD2A0aU4I1MmQCgQgbg== 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 Fri, May 19, 2023 at 08:40:18AM +0100, David Howells wrote: > Make direct_read_splice() limit the read to the end of the file for regular > files and block devices, thereby reducing the amount of allocation it will > do in such a case. > > This means that the blockdev code doesn't require any special handling as > filemap_read_splice() also limits to i_size. I'm really not sure if this is a good idea. Right now direct_read_splice (which also appears a little misnamed) really is a splice by calling ->read_iter helper. I we don't do any of this validtion we can just call it directly from splice.c instead of calling into ->splice_read for direct I/O and DAX and remove a ton of boilerplate code. How often do we even call into splice beyond i_size and for how much? > + if (S_ISREG(file_inode(in)->i_mode) || > + S_ISBLK(file_inode(in)->i_mode)) { Btw, having these kinds of checks in supposedly generic code is always a marked for a bit of a layering problem.