On Mon, Oct 31, 2016 at 11:40 PM, Christoph Hellwig <hch@xxxxxxxxxxxxx> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-block" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html