Messages in this thread | | | From | Andi Kleen <> | Subject | Re: [PATCH 11 of 11] x86: defer cr3 reload when doing pud_clear() | Date | Sat, 26 Jan 2008 06:57:03 +0100 |
| |
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
| |