[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20091001191515.GB24158@elte.hu>
Date: Thu, 1 Oct 2009 21:15:15 +0200
From: Ingo Molnar <mingo@...e.hu>
To: Avi Kivity <avi@...hat.com>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
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
* Avi Kivity <avi@...hat.com> wrote:
> On 10/01/2009 08:48 PM, Ingo Molnar wrote:
>> 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.
>
> Sure, but it would mean that we need a new notifier. sched_out,
> sched_in, and wakeup (and, return to userspace, with the new
> notifier).
perf events have sched out, sched in and wakeup events. Return to
user-space would be interesting to add as well. (and overhead of that
can be hidden via TIF - like you did via the return-to-userspace
notifiers)
Sounds more generally useful (and less scary) than (clever but somewhat
limiting) sched_class hackery.
I.e. i'd prefer if we had just one callback facility in those codepaths,
minimizing the hotpath overhead and providing a coherent API.
> btw, I've been thinking we should extend concurrency managed
> workqueues to userspace. Right now userspace can spawn a massive
> amount of threads, hoping to hide any waiting by making more work
> available to the scheduler. That has the drawback of increasing
> latency due to involuntary preemption. Or userspace can use one
> thread per cpu, hope it's the only application on the machine, and go
> all-aio.
>
> But what if we added a way for userspace to tell the kernel to fork
> off threads when processing power and work to do are both available?
> The scheduler knows when there is processing power, and an epoll fd
> can tell it when there is work to do. So the scheduler will create
> threads to saturate the processors, if one of them waits for I/O the
> scheduler forks off another one until all queues are busy again.
Sounds like syslets done right?
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