On Thu, May 27, 2010 at 06:15:54PM +0200, Tejun Heo wrote: > Hello, > > On 05/27/2010 03:12 PM, Michael S. Tsirkin wrote: > >> I don't understand the reasons for this patch, but this doesn't matter. > > > > Depending on userspace application, driver can create a lot of work > > for a workqueue to handle. By making the workqueue thread > > belong in a cgroup, we make it possible to the CPU and other > > resources thus consumed. > > Hmmm.... I don't really get it. The unit of scheduling in workqueue > is a work. Yes. However, we use cgroups to limit when the workqueue itself is scheduled. This affects all of work done on this workqueue, so it's a bit of a blunt intrument. Thus we are not trying to apply this to all drivers, we intend to start with vhost-net. > Unless you're gonna convert every driver to use this > special kind of workqueue (and what happens when multiple tasks from > different cgroups share the driver?), We'll then create a workqueue per task. Each workqueue will have the right cgroup. But we are not trying to selve the problem for every driver. > I can't see how this is gonna be > useful. If you really wanna impose cgroup control on workqueue items, > you'll have to do it per work item which might lead to the problem of > priority inversion. Exactly. cgroup is per-workqueue not per work item. If driver wants to let administrators control priority for different kinds of items separately, driver will have to submit them to separate workqueues. > Can you please describe what you're trying to do > in more detail? > > Thank you. vhost-net driver is under control from userspace, it queues potentially a lot of work into the workqueue, which might load the system beyond the cgroup limits. And staying within cgroups limits is important for virtualization where vhost is used. > -- > tejun -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html