On Fri, May 28, 2010 at 05:54:42PM +0200, Tejun Heo wrote: > Hello, > > On 05/28/2010 05:08 PM, Michael S. Tsirkin wrote: > > Well, we have create_singlethread_workqueue, right? > > This is not very different ... is it? > > > > Just copying structures and code from workqueue.c, > > adding vhost_ in front of it will definitely work: > > Sure it will, but you'll probably be able to get away with much less. > > > there is nothing magic about the workqueue library. > > But this just involves cut and paste which might be best avoided. > > What I'm saying is that some magic needs to be added to workqueue and > if you add this single(!) exception, it will have to be backed out > pretty soon, so it would be better to do it properly now. > > > One final idea before we go the cut and paste way: how about > > 'create_workqueue_from_task' that would get a thread and have workqueue > > run there? > > You can currently depend on that implementation detail but it's not > the workqueue interface is meant to do. The single threadedness is > there as execution ordering and concurrency specification and it > doesn't (or rather won't) necessarily mean that a specific single > thread is bound to certain workqueue. > > Can you please direct me to have a look at the code. I'll be happy to > do the conversion for you. Great, thanks! The code in question is in drivers/vhost/vhost.c It is used from drivers/vhost/net.c On top of this, we have patchset from Sridhar Samudrala, titled '0/3 Make vhost multi-threaded and associate each thread to its guest's cgroup': cgroups: Add an API to attach a task to current task's cgroup workqueue: Add an API to create a singlethread workqueue attached to the current task's cgroup vhost: make it more scalable by creating a vhost thread per device I have bounced the last three your way. > Thanks. > > -- > 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