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

Takuya Yoshikawa
2012-05-03T12:22:44Z

On Thu, 03 May 2012 10:35:27 +0200
Peter Zijlstra <peterz@infradead.org> 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