[PATCH] powerpc/mm: Lockless get_user_pages_fast()

Kumar Gala galak at kernel.crashing.org
Wed Jul 30 23:39:20 EST 2008


On Jul 30, 2008, at 8:17 AM, Nick Piggin wrote:

> On Wed, Jul 30, 2008 at 07:33:26AM -0500, Kumar Gala wrote:
>>
>> On Jul 29, 2008, at 10:37 PM, Benjamin Herrenschmidt wrote:
>>
>>> From: Nick Piggin <npiggin at suse.de>
>>>
>>> Implement lockless get_user_pages_fast for powerpc.  Page table
>>> existence
>>> is guaranteed with RCU, and speculative page references are used to
>>> take a
>>> reference to the pages without having a prior existence guarantee on
>>> them.
>>>
>>> Signed-off-by: Nick Piggin <npiggin at suse.de>
>>> Signed-off-by: Dave Kleikamp <shaggy at linux.vnet.ibm.com>
>>> Acked-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
>>> Cc: Paul Mackerras <paulus at samba.org>
>>> Cc: Hugh Dickins <hugh at veritas.com>
>>> Cc: "Paul E. McKenney" <paulmck at us.ibm.com>
>>> Cc: Peter Zijlstra <a.p.zijlstra at chello.nl>
>>> Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
>>> ---
>>>
>>> I'm going to merge this, sending it to the list for reference, it  
>>> was
>>> in -mm for some time , minus some changes/fixes I did to solve
>>> conflicts
>>> with the new multiple huge page sizes.
>>>
>>> Index: linux-work/arch/powerpc/Kconfig
>>> ===================================================================
>>> --- linux-work.orig/arch/powerpc/Kconfig	2008-07-30
>>> 13:17:06.000000000 +1000
>>> +++ linux-work/arch/powerpc/Kconfig	2008-07-30 13:27:40.000000000
>>> +1000
>>> @@ -42,6 +42,9 @@ config GENERIC_HARDIRQS
>>> 	bool
>>> 	default y
>>>
>>> +config HAVE_GET_USER_PAGES_FAST
>>> +	def_bool PPC64
>>> +
>>> config HAVE_SETUP_PER_CPU_AREA
>>> 	def_bool PPC64
>>
>> what's ppc64 specific here?
>
> I didn't look how 32-bit powerpc does its TLB shootdown and page table
> walking, so I don't know if it will work...

I haven't glanced at your code but we have two cases.  Either SW  
managed TLBs w/no HW walk or a full HW walk that should be similar to  
ppc64 (just no SLBs).

- k



More information about the Linuxppc-dev mailing list