Messages in this thread | | | From | Ming Lei <> | Date | Tue, 1 Nov 2016 08:19:06 +0800 | Subject | Re: [PATCH 46/60] block: deal with dirtying pages for multipage bvec |
| |
On Mon, Oct 31, 2016 at 11:40 PM, Christoph Hellwig <hch@infradead.org> wrote: > On Sat, Oct 29, 2016 at 04:08:45PM +0800, Ming Lei wrote: >> In bio_check_pages_dirty(), bvec->bv_page is used as flag >> for marking if the page has been dirtied & released, and if >> no, it will be dirtied in deferred workqueue. >> >> With multipage bvec, we can't do that any more, so change >> the logic into checking all pages in one mp bvec, and only >> release all these pages if all are dirtied, otherwise dirty >> them all in deferred wrokqueue. > > Just defer the whole bio to the workqueue if we need to redirty any, > that avoids having all these complex iteratations.
For dio READ, it is always dirtied before submitting, so there should be little possibity that pages in the bio becomes non-dirty after completion, it should hurt performance if each direct-read bio is deferred to the block wq.
thanks, Ming Lei
| |