Messages in this thread | | | Date | Mon, 8 Sep 2008 11:04:31 -0400 (EDT) | From | Steven Rostedt <> | Subject | Re: [PATCH] Convert tlbstate_lock spin_lock to raw_spin_lock |
| |
[ Refrain from using "unlisted-recipients" please! ]
On Mon, 8 Sep 2008, Sujit Karataparambil wrote:
> Chirag, > > Kindly understand what xavier is trying to do. He is Trying to disable smp. > The RT - Linux Code is dependent on the mutex lock to perform some > soft/hard real time processing. This is an problem with the mutex lock.
It is not a problem with the mutex lock.
> > Kindly check with some one before signing off patches.
The patch is legit.
The problem is simply that functions like flush_tlb_current_task and flush_tlb_mm disable preemption and then call flush_tlb_others. This function locks the tlbstate_lock which is currently a rtmutex. An rtmutex can not be called with preemption disabled. The tlbstate_lock is static, small and confined. I'm not sure we can change this code (flushing the TLB) in a way where we can allow preemption. This may just be a latency that we must hit.
-- Steve
| |