On 1/31/07, Mulyadi Santosa <mulyadi.santosa@xxxxxxxxx> wrote:
Hi > I wanted to know if the CFQ scheduler maintains queues per threads. > From the > source code it does not seem so and also 'ionice' only allows setting > priorities on a per process basis. Am I right? If so, do we know if the > implementation would be extended on a per thread basis? Maybe it's more like an idea rather than an answer. If those queues are somehow related to the user space memory area, then it could be a trouble to find out who owns that memory space, especially realizing that threads (the one created with clone(CLONE_VM ) or clone( CLONE_THREADS)) share same mm_struct. So, creating ionice as per process basis is the easiest work to accomplish... For supporting something like per thread queue, I think the kernel folks need to create an API to explicitly create and maintain one. In this queue, it could be stated that this pipe or queue belongs to certain PID. Perhaps something similar to netchannel. regards, Mulyadi
Thanks for the reply Mulyadi. I did read somewhere that request queues are maintained on a per thread basis. If that is true then the I/O schedulers should be fair on a per thread basis rather than on a per process basis. Can someone please confirm if the request queues are maintained on a per thread basis? Thanks Siddharth -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/