Re: [PATCH] Use global TLB flushes in MTRR code

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Ingo Molnar
Date: Thursday, February 7, 2008 - 1:37 pm

* Andi Kleen <andi@firstfloor.org> wrote:


... and this patch of yours breaks MTRR setting subtly:


because it's not just an open-coded __tlb_flush_all(), it _disables PGE 
and keeps it so while the MTRR's are changed on all CPUs_.

Your patch adds __flush_tlb_all() which re-enables the PGE bit in cr4, 
see asm-x86/tlbflush.h:

        /* clear PGE */
        write_cr4(cr4 & ~X86_CR4_PGE);
        /* write old PGE again and flush TLBs */
        write_cr4(cr4);

so we'll keep PGE enabled during the MTRR setting - which changes 
behavior.

	Ingo
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] Use global TLB flushes in MTRR code, Andi Kleen, (Thu Feb 7, 12:02 pm)
Re: [PATCH] Use global TLB flushes in MTRR code, Oliver Pinter, (Thu Feb 7, 12:08 pm)
Re: [PATCH] Use global TLB flushes in MTRR code, Ingo Molnar, (Thu Feb 7, 12:13 pm)
Re: [PATCH] Use global TLB flushes in MTRR code, Andi Kleen, (Thu Feb 7, 1:03 pm)
Re: [PATCH] Use global TLB flushes in MTRR code, Ingo Molnar, (Thu Feb 7, 1:37 pm)
Re: [PATCH] Use global TLB flushes in MTRR code, Andi Kleen, (Fri Feb 8, 4:44 am)
Re: [PATCH] Use global TLB flushes in MTRR code, Ingo Molnar, (Sat Feb 9, 2:40 am)
Re: [PATCH] Use global TLB flushes in MTRR code, Ingo Molnar, (Sat Feb 9, 4:47 am)
Re: [PATCH] Use global TLB flushes in MTRR code, Andi Kleen, (Sat Feb 9, 4:48 am)
Re: [PATCH] Use global TLB flushes in MTRR code, Andi Kleen, (Sat Feb 9, 7:12 am)