From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail191.messagelabs.com (mail191.messagelabs.com [216.82.242.19]) by kanga.kvack.org (Postfix) with ESMTP id 2D88E6B0044 for ; Fri, 18 Dec 2009 13:59:47 -0500 (EST) Date: Fri, 18 Dec 2009 18:59:34 +0000 From: Mel Gorman Subject: Re: [PATCH 13 of 28] bail out gup_fast on freezed pmd Message-ID: <20091218185934.GE21194@csn.ul.ie> References: <6cd9b035a6e0752ec74d.1261076416@v2.random> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <6cd9b035a6e0752ec74d.1261076416@v2.random> Sender: owner-linux-mm@kvack.org To: Andrea Arcangeli Cc: linux-mm@kvack.org, Marcelo Tosatti , Adam Litke , Avi Kivity , Izik Eidus , Hugh Dickins , Nick Piggin , Rik van Riel , Andi Kleen , Dave Hansen , Benjamin Herrenschmidt , Ingo Molnar , Mike Travis , KAMEZAWA Hiroyuki , Christoph Lameter , Chris Wright , Andrew Morton List-ID: On Thu, Dec 17, 2009 at 07:00:16PM -0000, Andrea Arcangeli wrote: > From: Andrea Arcangeli > > Force gup_fast to take the slow path and block if the pmd is freezed, not only > if it's none. > What does the slow path do when the same PMD is encountered? Assume it's clear later but the set at the moment kinda requires you to understand the entire series all at once. > Signed-off-by: Andrea Arcangeli > --- > > diff --git a/arch/x86/mm/gup.c b/arch/x86/mm/gup.c > --- a/arch/x86/mm/gup.c > +++ b/arch/x86/mm/gup.c > @@ -156,7 +156,7 @@ static int gup_pmd_range(pud_t pud, unsi > pmd_t pmd = *pmdp; > > next = pmd_addr_end(addr, end); > - if (pmd_none(pmd)) > + if (pmd_none(pmd) || pmd_trans_splitting(pmd)) > return 0; > if (unlikely(pmd_large(pmd))) { > if (!gup_huge_pmd(pmd, addr, next, write, pages, nr)) > -- Mel Gorman Part-time Phd Student Linux Technology Center University of Limerick IBM Dublin Software Lab -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org