Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755046Ab2EQIKt (ORCPT ); Thu, 17 May 2012 04:10:49 -0400 Received: from LGEMRELSE7Q.lge.com ([156.147.1.151]:51391 "EHLO LGEMRELSE7Q.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754272Ab2EQIK0 (ORCPT ); Thu, 17 May 2012 04:10:26 -0400 X-AuditID: 9c930197-b7be2ae000000ebb-3d-4fb4b270cfd7 To: undisclosed-recipients:; Message-ID: <4FB4B29C.4010908@kernel.org> Date: Thu, 17 May 2012 17:11:08 +0900 From: Minchan Kim User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120430 Thunderbird/12.0.1 MIME-Version: 1.0 Newsgroups: gmane.linux.kernel.mm,gmane.linux.kernel CC: Greg Kroah-Hartman , Nitin Gupta , Seth Jennings , Dan Magenheimer , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Thomas Gleixner , Ingo Molnar , Tejun Heo , David Howells , x86@kernel.org, a.p.zijlstra@chello.nl, Nick Piggin Subject: Re: [PATCH v2 3/3] x86: Support local_flush_tlb_kernel_range References: <1337133919-4182-1-git-send-email-minchan@kernel.org> <1337133919-4182-3-git-send-email-minchan@kernel.org> In-Reply-To: <1337133919-4182-3-git-send-email-minchan@kernel.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: AAAAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2529 Lines: 72 Isn't there anyone for taking a time to review this patch? :) On 05/16/2012 11:05 AM, Minchan Kim wrote: > The zsmalloc [un]maps non-physical contiguos pages to contiguous > virual address frequently so it needs frequent tlb-flush. > Now x86 doesn't support common utility function for flushing just > a few tlb entries so zsmalloc have been used set_pte and __flush_tlb_one > which are x86 specific functions. It means zsmalloc have a dependency > with x86. > > This patch adds new function, local_flush_tlb_kernel_range which > are good candidate for being common utility function because other > architecture(ex, MIPS, sh, unicore32, arm, score) already have > supportd it. > > Cc: Thomas Gleixner > Cc: Ingo Molnar > Cc: Tejun Heo > Cc: David Howells > Cc: x86@kernel.org > Signed-off-by: Minchan Kim > --- > arch/x86/include/asm/tlbflush.h | 12 ++++++++++++ > drivers/staging/zsmalloc/Kconfig | 2 +- > 2 files changed, 13 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h > index 4ece077..6e1253a 100644 > --- a/arch/x86/include/asm/tlbflush.h > +++ b/arch/x86/include/asm/tlbflush.h > @@ -172,4 +172,16 @@ static inline void flush_tlb_kernel_range(unsigned long start, > flush_tlb_all(); > } > > +static inline void local_flush_tlb_kernel_range(unsigned long start, > + unsigned long end) > +{ > + if (cpu_has_invlpg) { > + while (start < end) { > + __flush_tlb_single(start); > + start += PAGE_SIZE; > + } > + } else > + local_flush_tlb(); > +} > + > #endif /* _ASM_X86_TLBFLUSH_H */ > diff --git a/drivers/staging/zsmalloc/Kconfig b/drivers/staging/zsmalloc/Kconfig > index def2483..29819b8 100644 > --- a/drivers/staging/zsmalloc/Kconfig > +++ b/drivers/staging/zsmalloc/Kconfig > @@ -3,7 +3,7 @@ config ZSMALLOC > # arch dependency is because of the use of local_unmap_kernel_range > # in zsmalloc-main.c. > # TODO: implement local_unmap_kernel_range in all architecture. > - depends on (ARM || MIPS || SUPERH) > + depends on (ARM || MIPS || SUPERH || X86) > default n > help > zsmalloc is a slab-based memory allocator designed to store -- Kind regards, Minchan Kim -- 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/