lkml.org 
[lkml]   [2022]   [Jan]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: Phyr Starter
From
On 1/20/22 6:12 AM, Christoph Hellwig wrote:
> On Tue, Jan 11, 2022 at 12:17:18AM -0800, John Hubbard wrote:
>> Zooming in on the pinning aspect for a moment: last time I attempted to
>> convert O_DIRECT callers from gup to pup, I recall wanting very much to
>> record, in each bio_vec, whether these pages were acquired via FOLL_PIN,
>> or some non-FOLL_PIN method. Because at the end of the IO, it is not
>> easy to disentangle which pages require put_page() and which require
>> unpin_user_page*().
>
> I don't think that is a problem. Pinning only need to happen for
> ITER_IOVEC, and the only non-user pages there is the ZERO_PAGE added
> for padding that can be special cased.

I am really glad to hear you say that. Because I just worked through it
again in detail yesterday (including your and others' old emails about
this), and tentatively reached the same conclusion from seeing the call
paths. But I wanted to confirm with someone who actually knows this code
well, and that's not me. :)

Things like dio_refill_pages() are mixing in the zero page, but like you
say, that can be handled. I have a few ideas for that.

Now that the goal is a considerably narrower as compared to in 2019
("convert DIO callers to pup", instead of "convert the world to pup",
ha), this looks quite feasible after all.


thanks,
--
John Hubbard
NVIDIA

\
 
 \ /
  Last update: 2022-01-20 22:36    [W:0.103 / U:0.220 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site