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 9CF43C7EE2E for ; Thu, 25 May 2023 09:52:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 932D66B0074; Thu, 25 May 2023 05:52:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8BBF3900003; Thu, 25 May 2023 05:52:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 75D89900002; Thu, 25 May 2023 05:52:25 -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 61C506B0074 for ; Thu, 25 May 2023 05:52:25 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 2323FC09A8 for ; Thu, 25 May 2023 09:52:25 +0000 (UTC) X-FDA: 80828312250.21.0667E75 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf25.hostedemail.com (Postfix) with ESMTP id A3EAEA0013 for ; Thu, 25 May 2023 09:52:22 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=p6e1VERz; dmarc=none; spf=none (imf25.hostedemail.com: domain of BATV+2513424fa4087fe74412+7214+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+2513424fa4087fe74412+7214+infradead.org+hch@bombadil.srs.infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1685008342; 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=nTS/g9fJs1n3cdqbVQhwwN534SXRQ6PP71rBH26gs+o=; b=aj4j2lbfGMuqI0HTAww99HD2zsFjpSzcTcFg082FNMTjMy5ZEE8gkITf58CZllNiJ9m5En vFzX1iw3e5Q0KN8fEB3hj3jRzE8VIpYnR/EiRd3vY7zJkUlrJZank29Gbf+MVpPnmsDCYi z0trh+VMZGY9PgbgHCQWWlnwu/UEkKQ= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=p6e1VERz; dmarc=none; spf=none (imf25.hostedemail.com: domain of BATV+2513424fa4087fe74412+7214+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+2513424fa4087fe74412+7214+infradead.org+hch@bombadil.srs.infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1685008342; a=rsa-sha256; cv=none; b=M2vMZKzTWz37oMsD8OYyrGY7rLv9+FtugZfm+WpKEAcqoG4won3e83AZllLyEQrwPijgWT yHmKP5VgajenTsXOQXHkz4fVaLoaASHCQQ4k/JUBZKIFf2qxHV+gE1JRJGqAFzwOhC4Mxd DWC6VLNLBdGuwVpuBn2vdOGtFq/BjLA= 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=nTS/g9fJs1n3cdqbVQhwwN534SXRQ6PP71rBH26gs+o=; b=p6e1VERz8010nQ39lyNEHKlZBJ u9uCZI7CPHvLK/QvHgpdsWDLzUhplfc6m6cEzj55zPcPok5rXriocAueZ1L7Ki/vq26U2hpg5MZsm 1yfwE4fnYycZ5TFY4ZKPWVnReI263wRCmC4HazkrJ0eux7gIHW/BqfQmLKEN3i+9iCWObA//GMWYP dCXg2ypvVErRh3xsgKvmYz4gsBD7MxC0PSkssl7fofWrUTvacF23jY8czbQSQYguj0z6jHHWEfCTO OxCsTp8QjVVMEcONNlV88MyIBTwC+QiOz3MHJU7cNVzxST4eLSM0aeP+cJeKSPlOHdZ4uQgr72pKp 1+4+U46Q==; Received: from hch by bombadil.infradead.org with local (Exim 4.96 #2 (Red Hat Linux)) id 1q27dX-00GC8e-19; Thu, 25 May 2023 09:51:59 +0000 Date: Thu, 25 May 2023 02:51:59 -0700 From: Christoph Hellwig To: David Howells Cc: Christoph Hellwig , Jens Axboe , Al Viro , 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 Subject: Re: Extending page pinning into fs/direct-io.c Message-ID: References: <20230522205744.2825689-1-dhowells@redhat.com> <3068545.1684872971@warthog.procyon.org.uk> <3215177.1684918030@warthog.procyon.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3215177.1684918030@warthog.procyon.org.uk> X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html X-Rspamd-Queue-Id: A3EAEA0013 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: 6bnx9mtdkrmnpiizt6ut43mhr5iq3aj3 X-HE-Tag: 1685008342-197180 X-HE-Meta: U2FsdGVkX1+D0G61vxH7MXr2xGf3Ds+iddlkkqw93JgqFqBVo6yE9i2KFJw8zGDLUXGFzsJ5f057imQn9TYuBnAbR+/f6qasuNKSUUwsBUvo5mSxpjT1c11c+CX4wB1Os7LeIE1ZluwJeTnQ3U9LaeB8wt+sf4fHlAQE8QDg7s0HPJppaul0NM65peWqNxnXPPqwqqNQyTTRuer8uZT493LOVH0/IT7oTE6H1wf/KGe1EuQ9m+lrDXKDy8HDLCHuJntgSigO4JE7sYBA3m4DidGiz9YrL9I39PaheOffwRIu6qeR1gLd8BtqKn5YN61HXVpztILtjBJ4nSmmie00WU+e37+MFEmlaH+5tLW2X6MCCeGTdaYXU4MvM9/VZOTEUvk8ap/I2v+8QjgWTRo1xSpxe3otBtswQ1EDD0t0e7LsGpHEbzH84nVmc0Fp7RFTKrXDaTsc4wlLuxiWN2guCNx3AnS9KSFwe8cERKcb/o++eSDjKN69pvsZ6LHSz+QeBxdes1F9aLF9Fsj5zTD6wrHWVoTJYNxu5xtdNe7PjKKIHNrLquPqcSfzXNNgirSRz1QLxEr/Y7jd2BnPBDr5lRNSrQC5e3zKNxWtiNwe3goRI7EyvzCJ2y+X41ii9gkH/PQpSS31IQt9OXzl+op0igFvjFI3wX6jFD8eGG/db+Xpju6M6+igA1OqPiQxXaSuMs5dxUOfULojmX3cH6SAWIXJVPp2Ojktwxx73lExp6o5TLP9H31gILpIWOnkiRYS7s7gY91M+59m+cZKeQaP+Fp+HN3Fn110V2GUBj2TILJLUeb6Rsvt+3yJlhePQt3G4elCCIunNA9Ou7khDheKtt0rQyJD0sfjiYBPUEkDoU81c69iR5uTShtY4oIEN+R353IavmxJOktEEfYZNkKlkFc92swTBu0R71sfJ0cZ5YRfPQsWhcKr38BvVXF9hJH9OE1x8HFRiAnNDnwZ6ne l9lEr9Z+ qNvub3Tk6bj7Yy347faZvT0wlGkFLZz3K/A+Avb2EfbKduKGXWLd63XA6xcIrt8augW7ZVNAzxIU+rmh6OZog4lLxQcODq46H1k2jw5/l1CW+1psf5P96Wj44ZunkGSlBZtSk2a7o4mEkAfy+7lAfyVt0d0XOthYqsHUgV5Agk88caQzURuoq2jQLlZi5o67STF9eWMqB0ZeS+bO5vdCoyIPXCBTephHFfzzPf5fqcR1JOqPBD+yccSIlG7ig3rh5b+dw4ueG1bmGsenvs7e4Tqx04iwXFI86L0lFzTpvNrgZYotYb8RKzADu6YgVfjVKHCamgp9Fbc+uk9cbr2A3oUxvlS7ekSt1zPRqM7+9dMbd5sA1nCA1tD5aI6o/DUuWj7chwgYAjjTVyR4= 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, May 24, 2023 at 09:47:10AM +0100, David Howells wrote: > True - but I was thinking of just treating the zero_page specially and never > hold a pin or a ref on it. It can be checked by address, e.g.: > > static inline void bio_release_page(struct bio *bio, struct page *page) > { > if (page == ZERO_PAGE(0)) > return; > if (bio_flagged(bio, BIO_PAGE_PINNED)) > unpin_user_page(page); > else if (bio_flagged(bio, BIO_PAGE_REFFED)) > put_page(page); > } That does sound good as well to me. > I was looking at this: > > static inline void dio_bio_submit(struct dio *dio, struct dio_submit *sdio) > { > ... > if (dio->is_async && dio_op == REQ_OP_READ && dio->should_dirty) > bio_set_pages_dirty(bio); > ... > } > > but looking again, the lock is taken briefly and the dirty bit is set - which > is reasonable. However, should we be doing it before starting the I/O? It is done before starting the I/O - the submit_bio is just below this.