On Thu, Oct 13, 2016 at 11:44:41AM +0200, Jan Kara wrote: > On Thu 15-09-16 14:54:59, Kirill A. Shutemov wrote: > > We writeback whole huge page a time. > > This is one of the things I don't understand. Firstly I didn't see where > changes of writeback like this would happen (maybe they come later). > Secondly I'm not sure why e.g. writeback should behave atomically wrt huge > pages. Is this because radix-tree multiorder entry tracks dirtiness for us > at that granularity? We track dirty/writeback on per-compound pages: meaning we have one dirty/writeback flag for whole compound page, not on every individual 4k subpage. The same story for radix-tree tags. > BTW, can you also explain why do we need multiorder entries? What do > they solve for us? It helps us having coherent view on tags in radix-tree: no matter which index we refer from the range huge page covers we will get the same answer on which tags set. > I'm sorry for these basic questions but I'd just like to understand how is > this supposed to work... > > Honza > > > > > > Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> > > --- > > mm/filemap.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/mm/filemap.c b/mm/filemap.c > > index 05b42d3e5ed8..53da93156e60 100644 > > --- a/mm/filemap.c > > +++ b/mm/filemap.c > > @@ -372,9 +372,14 @@ static int __filemap_fdatawait_range(struct address_space *mapping, > > if (page->index > end) > > continue; > > > > + page = compound_head(page); > > wait_on_page_writeback(page); > > if (TestClearPageError(page)) > > ret = -EIO; > > + if (PageTransHuge(page)) { > > + index = page->index + HPAGE_PMD_NR; > > + i += index - pvec.pages[i]->index - 1; > > + } > > } > > pagevec_release(&pvec); > > cond_resched(); > > -- > > 2.9.3 > > > > > -- > Jan Kara <jack@xxxxxxxx> > SUSE Labs, CR > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@xxxxxxxxx. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a> -- Kirill A. Shutemov -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html