Messages in this thread | | | Date | Tue, 04 Mar 2008 16:07:11 -0800 | From | Jeremy Fitzhardinge <> | Subject | Re: preempt bug in set_pmd_pfn? |
| |
Andi Kleen wrote: >> Won't this leave a stale tlb on the old processor? >> > > __set_fixmap should be only used in early boot, so it's always > on CPU 0
vdso32-setup.c:map_compat_vdso() uses it to create the compat vdso mapping, which typically happens on the first execve(), and could happen if you turn compat vdso off and on during runtime. (It follows the call with flush_tlb_all(), so there's no risk of stray tlb entries in this case.)
But that answers my broader question about how __set_fixmap can get away with just flushing on the current cpu; I'll add a preempt disable bracket to keep everyone happy.
Any opinions on set_pte_at(&init_mm, ...) without holding any locks? All ok?
J
| |