Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755080AbaKSG76 (ORCPT ); Wed, 19 Nov 2014 01:59:58 -0500 Received: from TYO202.gate.nec.co.jp ([210.143.35.52]:45503 "EHLO tyo202.gate.nec.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754285AbaKSG7y convert rfc822-to-8bit (ORCPT ); Wed, 19 Nov 2014 01:59:54 -0500 From: Naoya Horiguchi To: "Kirill A. Shutemov" CC: Andrew Morton , Andrea Arcangeli , Dave Hansen , Hugh Dickins , Mel Gorman , Rik van Riel , Vlastimil Babka , Christoph Lameter , Steve Capper , "Aneesh Kumar K.V" , Johannes Weiner , Michal Hocko , "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" Subject: Re: [PATCH 10/19] thp: PMD splitting without splitting compound page Thread-Topic: [PATCH 10/19] thp: PMD splitting without splitting compound page Thread-Index: AQHP+QfeKRo0LmzNiEa6tL3FeviR5pxnA3uA Date: Wed, 19 Nov 2014 06:57:47 +0000 Message-ID: <20141119065823.GA16887@hori1.linux.bs1.fc.nec.co.jp> References: <1415198994-15252-1-git-send-email-kirill.shutemov@linux.intel.com> <1415198994-15252-11-git-send-email-kirill.shutemov@linux.intel.com> In-Reply-To: <1415198994-15252-11-git-send-email-kirill.shutemov@linux.intel.com> Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.128.101.16] Content-Type: text/plain; charset="iso-2022-jp" Content-ID: Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Nov 05, 2014 at 04:49:45PM +0200, Kirill A. Shutemov wrote: > Current split_huge_page() combines two operations: splitting PMDs into > tables of PTEs and splitting underlying compound page. This patch > changes split_huge_pmd() implementation to split the given PMD without > splitting other PMDs this page mapped with or underlying compound page. > > In order to do this we have to get rid of tail page refcounting, which > uses _mapcount of tail pages. Tail page refcounting is needed to be able > to split THP page at any point: we always know which of tail pages is > pinned (i.e. by get_user_pages()) and can distribute page count > correctly. > > We can avoid this by allowing split_huge_page() to fail if the compound > page is pinned. This patch removes all infrastructure for tail page > refcounting and make split_huge_page() to always return -EBUSY. All > split_huge_page() users already know how to handle its fail. Proper > implementation will be added later. > > Without tail page refcounting, implementation of split_huge_pmd() is > pretty straight-forward. > > Signed-off-by: Kirill A. Shutemov > --- ... > diff --git a/arch/powerpc/mm/hugetlbpage.c b/arch/powerpc/mm/hugetlbpage.c > index 7e70ae968e5f..e4ba17694b6b 100644 > --- a/arch/powerpc/mm/hugetlbpage.c > +++ b/arch/powerpc/mm/hugetlbpage.c > @@ -1022,7 +1022,6 @@ int gup_hugepte(pte_t *ptep, unsigned long sz, unsigned long addr, > { > unsigned long mask; > unsigned long pte_end; > - struct page *head, *page, *tail; > pte_t pte; > int refs; > This breaks build of powerpc, so you need keep *head and *page as you do for other architectures.-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/