From mboxrd@z Thu Jan 1 00:00:00 1970 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) Message-ID: <20130328122557.2D6A7E0085@blue.fi.intel.com> References: <1363283435-7666-1-git-send-email-kirill.shutemov@linux.intel.com> <1363283435-7666-15-git-send-email-kirill.shutemov@linux.intel.com> <514C773A.6070000@sr71.net> Content-Transfer-Encoding: 7bit Cc: "Kirill A. Shutemov" , Andrea Arcangeli , Andrew Morton , Al Viro , Hugh Dickins , Wu Fengguang , Jan Kara , Mel Gorman , linux-mm@kvack.org, Andi Kleen , Matthew Wilcox , "Kirill A. Shutemov" , Hillf Danton , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org To: Dave Hansen Return-path: In-Reply-To: <514C773A.6070000@sr71.net> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org Dave Hansen wrote: > On 03/14/2013 10:50 AM, Kirill A. Shutemov wrote: > > From: "Kirill A. Shutemov" > > > > 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