[PATCH][RT][PPC64] Fix preempt unsafe paths accessing per_cpu variables
Steven Rostedt
rostedt at goodmis.org
Sat Jul 19 11:26:00 EST 2008
On Sat, 19 Jul 2008, Benjamin Herrenschmidt wrote:
>
> > 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 __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
More information about the Linuxppc-dev
mailing list