Re: [PATCH v8 8/8] x86/tlb: do flush_tlb_kernel_range by 'invlpg'

From: Alex Shi
Date: Wed Jun 13 2012 - 21:28:28 EST


On 06/14/2012 09:10 AM, Alex Shi wrote:

> On 06/13/2012 10:56 PM, Andi Kleen wrote:
>
>> On Tue, Jun 12, 2012 at 05:06:45PM +0800, Alex Shi wrote:
>>> This patch do flush_tlb_kernel_range by 'invlpg'. The performance pay
>>> and gain was analysed in my patch (x86/flush_tlb: try flush_tlb_single
>>> one by one in flush_tlb_range). Now we move this logical into kernel
>>> part. The pay is multiple 'invlpg' execution cost, that is same. but
>>> the gain(cost reducing of TLB entries refilling) is absolutely
>>> increased.
>>
>> The subtle point is whether INVLPG flushes global pages or not.
>> After some digging I found a sentence in the SDM that says it does.
>> So it may be safe.
>
>
> Many thanks for your time!
>
>>
>> What does it improve?
>
>
> I have not specific benchmark for this. partly due to the gain theory
> was proved since it is same as previous user process's page table flush.
>
> The user of tlb kernel flush in kernel is vmalloc. and Android binder
> IPC subsystem is using it(drivers/staging/android/binder.c)
>
> I am wondering if it can help Andriod on this?
> So, add cc to android-kernel@xxxxxxxxxxxxxxxx


Sorry, Andriod reject posting without register, so cc to
linux-omap@xxxxxxxxxxxxxxx and linux-tegra@xxxxxxxxxxxxxxx instead.

>
>> -Andi
>
>


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/