Re: [PATCHv2, RFC 14/30] thp, mm: naive support of thp in genericread/write routines

From: Kirill A. Shutemov
Date: Thu Mar 28 2013 - 08:24:14 EST


Dave Hansen wrote:
> On 03/14/2013 10:50 AM, Kirill A. Shutemov wrote:
> > From: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
> >
> > For now we still write/read at most PAGE_CACHE_SIZE bytes a time.
> >
> > This implementation doesn't cover address spaces with backing store.
> ...
> > --- a/mm/filemap.c
> > +++ b/mm/filemap.c
> > @@ -1165,12 +1165,23 @@ find_page:
> > if (unlikely(page == NULL))
> > goto no_cached_page;
> > }
> > + if (PageTransTail(page)) {
> > + page_cache_release(page);
> > + page = find_get_page(mapping,
> > + index & ~HPAGE_CACHE_INDEX_MASK);
> > + if (!PageTransHuge(page)) {
> > + page_cache_release(page);
> > + goto find_page;
> > + }
> > + }
>
> So, we're going to do a read of a file, and we pulled a tail page out of
> the page cache. Why can't we just deal with the tail page directly?

Good point. I'll redo it once again.

First I thought to make it possible to read/write more PAGE_SIZE at once.
If not take this option in account for now, it's possible to make code much
cleaner.

--
Kirill A. Shutemov
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/