On Sat, 19 Jul 2008, Benjamin Herrenschmidt wrote:
quoted
With the original patch, the pending batch does get flushed
in a non-preemptable region.
I am resending the original with just adding the necesary comments.
Your comment isn't what I meant. What I meant is that if the process
is context switched while walking the page tables, the low level powerpc
context switch code should also perform a =EF=BB=BF__flush_tlb_pending.
BTW. Is the pte_lock also not a real spinlock anymore ? That may break
other assumptions the powerpc mm code is doing.
This -rt stuff is just too scary, it changes some fundamental semantics
of the spinlocks. yuck.
There's lots of semantics that are changed with -rt that should make
everything still work ;-) Some spinlocks remain real spinlocks, but we
shouldn't have a problem with most being mutexes.
There's some cases that uses per CPU variables or other per cpu actions
that require a special CPU_LOCK that protects the data in a preemption
mode. The slab.c code in -rt handles this.
-- Steve