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

From: Avi Kivity
Date: Thu Oct 01 2009 - 05:15:39 EST


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.

--
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/