[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20091001184824.GA21357@elte.hu>
Date: Thu, 1 Oct 2009 20:48:24 +0200
From: Ingo Molnar <mingo@...e.hu>
To: Linus Torvalds <torvalds@...ux-foundation.org>,
Avi Kivity <avi@...hat.com>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>
Cc: Tejun Heo <tj@...nel.org>, jeff@...zik.org,
linux-kernel@...r.kernel.org, akpm@...ux-foundation.org,
jens.axboe@...cle.com, rusty@...tcorp.com.au,
cl@...ux-foundation.org, dhowells@...hat.com, arjan@...ux.intel.com
Subject: Re: [PATCH 03/19] scheduler: implement workqueue scheduler class
* Linus Torvalds <torvalds@...ux-foundation.org> wrote:
> On Thu, 1 Oct 2009, Tejun Heo wrote:
> >
> > Implement workqueue scheduler class. Workqueue sched_class inherits
> > fair sched_class and behaves exactly the same as sched_class except
> > that it has two callback functions which get called when a task is
> > put to sleep and wakes up and doesn't allow switching to different
> > scheduler class.
>
> So this looks odd to me.
>
> I agree completely with the callback functions, but what I don't agree
> with is that this is somehow workqueue-related. I bet that others
> could use this, and in fact, I suspect that it should not be tied to
> the scheduler class at all, but to the _thread_.
>
> Just as an example, I could imagine that we would do lock_kernel()
> releasing the kernel lock on scheduling (and re-taking it on wakeup)
> as a callback. Or async IO handling - both done independently of any
> "workqueue" logic.
>
> So tying this to the scheduler class seems a bit odd. But maybe I'm
> missing something?
We could do what Avi suggested: not use scheduler classes at all for
this (that brings in other limitations like lack of p->policy freedom),
but use the existing preempt-notifications callbacks.
They are per task - we would simply make preempt notifiers
unconditional, i.e. remove CONFIG_PREEMPT_NOTIFIERS and make it all
unconditional scheduler logic.
( Sidenote: we could even unify that logic with the perf event
sched-in/sched-out logic which is per task in a similar fashion and
which can have callback properties as well. That would mean a single,
well-defined callback facility for scheduler events. )
Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists