linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Howells <dhowells@redhat.com>
To: David Hildenbrand <david@redhat.com>
Cc: dhowells@redhat.com, Christoph Hellwig <hch@infradead.org>,
	Lorenzo Stoakes <lstoakes@gmail.com>,
	Jens Axboe <axboe@kernel.dk>, Al Viro <viro@zeniv.linux.org.uk>,
	Matthew Wilcox <willy@infradead.org>, Jan Kara <jack@suse.cz>,
	Jeff Layton <jlayton@kernel.org>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Logan Gunthorpe <logang@deltatee.com>,
	Hillf Danton <hdanton@sina.com>,
	Christian Brauner <brauner@kernel.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Andrew Morton <akpm@linux-foundation.org>,
	John Hubbard <jhubbard@nvidia.com>
Subject: Re: [PATCH v4 2/3] mm: Provide a function to get an additional pin on a page
Date: Wed, 31 May 2023 09:20:38 +0100	[thread overview]
Message-ID: <510619.1685521238@warthog.procyon.org.uk> (raw)
In-Reply-To: <de425aeb-4064-733a-52ed-e702c640c36f@redhat.com>

David Hildenbrand <david@redhat.com> wrote:

> > Provide a function to get an additional pin on a page that we already have
> > a pin on.  This will be used in fs/direct-io.c when dispatching multiple
> > bios to a page we've extracted from a user-backed iter rather than redoing
> > the extraction.
> > 
> 
> I guess this function is only used for "replicating" an existing pin, and not
> changing the semantics of an existing pin: something that was pinned
> !FOLL_LONGTERM cannot suddenly become effectively pinned FOLL_LONGTERM.
> 
> Out of curiosity, could we end up passing in an anonymous page, or is this
> almost exclusively for pagecache+zero pages? (I rememebr John H. had a similar
> patch where he said it would not apply to anon pages)

It has to be able to handle anything in a process's VM that you can
legitimately use as the buffer for a DIO read/write.  If we can get a pin on
it from pin_user_pages_fast(), then we need to be able to get an additional
pin on it.  For the moment it's just in the old DIO stuff, but it will almost
certainly be necessary in the networking code too to handle splicing into
network packets.

David


  parent reply	other threads:[~2023-05-31  8:21 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-26 21:41 [PATCH v4 0/3] block: Make old dio use iov_iter_extract_pages() and page pinning David Howells
2023-05-26 21:41 ` [PATCH v4 1/3] mm: Don't pin ZERO_PAGE in pin_user_pages() David Howells
2023-05-27 19:46   ` Lorenzo Stoakes
2023-05-31  3:57   ` Christoph Hellwig
2023-05-31  7:34   ` David Hildenbrand
2023-05-31  8:35   ` David Howells
2023-05-31  8:46     ` David Hildenbrand
2023-05-31 13:55     ` David Howells
2023-05-31 14:10       ` Lorenzo Stoakes
2023-06-01 10:14       ` David Hildenbrand
2023-05-26 21:41 ` [PATCH v4 2/3] mm: Provide a function to get an additional pin on a page David Howells
2023-05-31  3:57   ` Christoph Hellwig
2023-05-31  7:42   ` David Hildenbrand
2023-05-31  8:20   ` David Howells [this message]
2023-05-26 21:41 ` [PATCH v4 3/3] block: Use iov_iter_extract_pages() and page pinning in direct-io.c David Howells
2023-05-31  3:58   ` Christoph Hellwig
2023-05-31 15:48 ` [PATCH v4 0/3] block: Make old dio use iov_iter_extract_pages() and page pinning Jens Axboe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=510619.1685521238@warthog.procyon.org.uk \
    --to=dhowells@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=axboe@kernel.dk \
    --cc=brauner@kernel.org \
    --cc=david@redhat.com \
    --cc=hch@infradead.org \
    --cc=hdanton@sina.com \
    --cc=jack@suse.cz \
    --cc=jgg@nvidia.com \
    --cc=jhubbard@nvidia.com \
    --cc=jlayton@kernel.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=logang@deltatee.com \
    --cc=lstoakes@gmail.com \
    --cc=torvalds@linux-foundation.org \
    --cc=viro@zeniv.linux.org.uk \
    --cc=willy@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).