Re: [RFC] sched: make callers check lock contention forcond_resched_lock()

From: Takuya Yoshikawa
Date: Thu May 03 2012 - 08:22:47 EST


On Thu, 03 May 2012 10:35:27 +0200
Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> On Thu, 2012-05-03 at 17:12 +0900, Takuya Yoshikawa wrote:
> >
> > Although we can do that using spin_is_contended() and cond_resched(),
> > changing cond_resched_lock() to satisfy such a need is another option.
> >
> Yeah, not a pretty patch. Changing all cond_resched_lock() sites just to
> change one and in such an ugly way too.
>
> So what's the impact of making spin_needbreak() work for !PREEMPT?

Although the real use case is out of this RFC patch, we are now discussing
a case in which we may hold a spin_lock for long time, ms order, depending
on workload; and in that case, other threads -- VCPU threads -- should be
given higher priority for that problematic lock.

I wanted to hear whether other users also have similar needs. If so, it
may be worth making the API a bit more generic.

But I could not find a clean solution for that. Do you think that using
spin_is_contended() directly is the way to go?

Thanks,
Takuya
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/