Re: [PATCH 00/12] block/bio, fs: convert put_page() to put_user_page*()

From
Christoph Hellwig <hch@infradead.org>
Date
2019-08-07 06:35:26
Also in
ceph-devel, kvm, linux-block, linux-cifs, linux-fsdevel, linux-mm, linux-nfs, linux-rdma, lkml
Reply to
John Hubbard, 2019-08-05
On Mon, Aug 05, 2019 at 03:54:35PM -0700, John Hubbard wrote:
On 7/23/19 11:17 PM, Christoph Hellwig wrote:
quoted
On Tue, Jul 23, 2019 at 09:25:06PM -0700, john.hubbard@gmail.com wrote:
quoted
* Store, in the iov_iter, a "came from gup (get_user_pages)" parameter.
  Then, use the new iov_iter_get_pages_use_gup() to retrieve it when
  it is time to release the pages. That allows choosing between put_page()
  and put_user_page*().

* Pass in one more piece of information to bio_release_pages: a "from_gup"
  parameter. Similar use as above.

* Change the block layer, and several file systems, to use
  put_user_page*().
I think we can do this in a simple and better way.  We have 5 ITER_*
types.  Of those ITER_DISCARD as the name suggests never uses pages, so
we can skip handling it.  ITER_PIPE is rejected іn the direct I/O path,
which leaves us with three.
Hi Christoph,

Are you working on anything like this?
I was hoping I could steer you towards it.  But if you don't want to do
it yourself I'll add it to my ever growing todo list.
Or on the put_user_bvec() idea?
I have a prototype from two month ago:

http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/gup-bvec

but that only survived the most basic testing, so it'll need more work,
which I'm not sure when I'll find time for.
Thread (27 messages) 27 messages, 7 authors, 2019-08-07
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help