Messages in this thread | | | From | "Kirill A. Shutemov" <> | Subject | Re: [PATCHv2, RFC 14/30] thp, mm: naive support of thp in generic read/write routines | Date | Thu, 28 Mar 2013 14:25:57 +0200 (EET) |
| |
Dave Hansen wrote: > On 03/14/2013 10:50 AM, Kirill A. Shutemov wrote: > > From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> > > > > 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
| |