Re: [PATCH 11 of 11] x86: defer cr3 reload when doing pud_clear()

From: Andi Kleen
Date: Sat Jan 26 2008 - 00:57:36 EST


On Saturday 26 January 2008 01:11:28 Ingo Molnar wrote:
(plus
> any add-on TLB miss costs - but those are amortized quite well as long
> as the pagetables are well cached - which they usually are on today's
> 2MB-ish L2 caches),

Did you measure the cost of that amortizing too?

My guess is that especially with TLBs getting larger and larger the
cost of full CR3 flushes are rising.

> so INVLPG makes sense for pagetable fault realated single-address
> flushes, but they rarely make sense for range flushes. (and that's how
> Linux uses it)

I think it would be an interesting experiment to switch flush_tlb_range()
over to INVLPG if the length is below some threshold and see if there
are visible effects in macro benchmarks. The main problem
would be to determine the right threshold -- would likely be CPU dependent.

-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/