Re: [RFC PATCHSET] workqueue: implement concurrency managed workqueue

Avi Kivity
2009-10-01T09:15:30Z

On 10/01/2009 10:40 AM, Ingo Molnar wrote:
> Ok, this looks fairly interesting - and the way you reused scheduler
> classes to auto-regulate with no impact on regular performance is quite
> an ingenious idea as well. (KVM's preempt notifiers should probably use
> this trick too, instead of an ugly notifier in the scheduler hotpath)
>
> This mechanism could be used to implement threadlets/syslets too btw.,
> and other forms of asynchronous IO.
>

In fact I've thought of implementing threadlets and concurrency-managed
workqueues with preempt notifiers ;)

Isn't a scheduling class overkill for two existing callbacks? Note we
can easily use a thread flag and __switch_to_xtra() to avoid the overhead.

For kvm, we don't want to force a specific scheduling class for vcpu
threads, so we'd need infrastructure to create a new scheduling class
out of an existing one to hook the two callbacks. Seems like quite a
lot of work, for something that is orthogonal to scheduling.

Tejun, would preempt notifiers work for your workqueues? see bottom of
include/linux/preempt.h.

--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.