On Tue, Dec 10, 2019 at 10:02:18AM -0700, Jens Axboe wrote: > On 12/10/19 9:55 AM, Matthew Wilcox wrote: > > On Tue, Dec 10, 2019 at 09:24:52AM -0700, Jens Axboe wrote: > >> +/* > >> + * Start writeback on the pages in pgs[], and then try and remove those pages > >> + * from the page cached. Used with RWF_UNCACHED. > >> + */ > >> +void write_drop_cached_pages(struct page **pgs, struct address_space *mapping, > >> + unsigned *nr) > > > > It would seem more natural to use a pagevec instead of pgs/nr. > > I did look into that, but they are intertwined with LRU etc. I > deliberately avoided the LRU on the read side, as it adds noticeable > overhead and gains us nothing since the pages will be dropped agian. I agree the LRU uses them, but they're used in all kinds of places where we need to batch pages, eg truncate, munlock.