Re: [PATCH 2/3] x86/flush_tlb: try flush_tlb_single one by one inflush_tlb_range

From: Alex Shi
Date: Wed May 02 2012 - 09:16:07 EST


On 05/02/2012 09:04 PM, Nick Piggin wrote:

> On 2 May 2012 21:38, Alex Shi <alex.shi@xxxxxxxxx> wrote:
>> On 05/02/2012 05:38 PM, Borislav Petkov wrote:
>>
>>> On Wed, May 02, 2012 at 05:24:09PM +0800, Alex Shi wrote:
>>>> For some of scenario, above equation can be modified as:
>>>> (512 - X) * 100ns(assumed TLB refill cost) = X * 140ns(assumed invlpg cost)
>
> It should not be that optimistic, because that equation assumes every
> unflushed entry saves a TLB refill too.
>
> I think it is always a good idea to make such fundamental primitives
> cheaper though.
>
>
>>> Also, have you run your patches with other benchmarks beside your
>>> microbenchmark, say kernbench, SPEC<something>, i.e. some other
>>> multithreaded benchmark touching shared memory? Are you seeing any
>>> improvement there?
>>
>>
>> I tested oltp reading and specjbb2005 with openjdk. They should not much
>> flush_tlb_range calling. So, no clear improvement.
>> Do you know benchmarks which cause enough flush_tlb_range?
>
> x86 does not do such invlpg flushing for munmap either, as far as I
> can see?
>
> It would be a little more work to make this happen, but it might show
> more benefit, provided glibc does not free too huge chunks at once,
> it should apply far more often.


Good idea, and it is worthy to try!
But anyway, it is another job. :)
--
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/