Re: [PATCH 2/2] block: no-copy bvec for direct IO
From: Christoph Hellwig <hch@infradead.org>
Date: 2020-12-09 08:41:11
Also in:
io-uring, linux-fsdevel, lkml
From: Christoph Hellwig <hch@infradead.org>
Date: 2020-12-09 08:41:11
Also in:
io-uring, linux-fsdevel, lkml
+ /* + * In practice groups of pages tend to be accessed/reclaimed/refaulted + * together. To not go over bvec for those who didn't set BIO_WORKINGSET + * approximate it by looking at the first page and inducing it to the + * whole bio + */ + if (unlikely(PageWorkingset(iter->bvec->bv_page))) + bio_set_flag(bio, BIO_WORKINGSET);
IIRC the feedback was that we do not need to deal with BIO_WORKINGSET at all for direct I/O.
+ bio_set_flag(bio, BIO_NO_PAGE_REF); + + iter->count = 0; + return 0; +}
This helper should go into bio.c, next to bio_iov_iter_get_pages. And please convert the other callers of bio_iov_iter_get_pages to this scheme as well.