Messages in this thread | | | Subject | Re: [RFC][PATCH RT] rtmutex: Use raw_spin_trylock() in rt_mutex_slowlock() to ease possible live locks | From | Steven Rostedt <> | Date | Thu, 20 Dec 2012 13:02:01 -0500 |
| |
On Wed, 2012-12-19 at 20:31 -0500, Steven Rostedt wrote:
Talking with Thomas, the proper solution is:
> Then we have this lovely code: > > block/blk-ioc.c: put_io_context_active() > > retry: > spin_lock_irqsave_nested(&ioc->lock, flags, 1); > hlist_for_each_entry(icq, n, &ioc->icq_list, ioc_node) { > if (icq->flags & ICQ_EXITED) > continue; > if (spin_trylock(icq->q->queue_lock)) { > ioc_exit_icq(icq); > spin_unlock(icq->q->queue_lock); > } else { > spin_unlock_irqrestore(&ioc->lock, flags); > cpu_relax();
s/cpu_relax/cpu_chill/
-- Steve
> goto retry; > } > } >
| |