Thread (4 messages) 4 messages, 2 authors, 2011-07-11

faster way to find task

From: Nuno Martins <hidden>
Date: 2011-07-11 17:01:26

On Mon, Jul 11, 2011 at 5:34 PM, loody [off-list ref] wrote:
Hi all:


2011/7/12 loody [off-list ref]
quoted
Dear all:
Is there faster way to find a give name of task?
for example, I have a thread, named "test", is there faster way to get the
task struct  by passing "test" to some kernel api?


--
Regards,
I found a way as below:
for_each_process(task) {
printk(?%s[%d]\n?, task->comm, task->pid);
}

But it is time-consuming to do so if I periodically want to know whether
"test" exist or not.
is there better way to do so?

If you have the thread pid you could find it really fast. By name i don't
know any function that could help you with that.
You could search [1,2] for functions that could help you with that.
If you are invoking from the thread you want, inside the kernel you can get
the current variable that points to ther current process.


 [1]  http://lxr.linux.no/linux+v2.6.39/kernel/pid.c#L426
 [2] struct task_struct<http://lxr.linux.no/linux+v2.6.39/+code=task_struct>*
find_task_by_vpid<http://lxr.linux.no/linux+v2.6.39/+code=find_task_by_vpid>
(pid_t <http://lxr.linux.no/linux+v2.6.39/+code=pid_t>
vnr<http://lxr.linux.no/linux+v2.6.39/+code=vnr>
);

Have a good work.

--
Regards,

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies at kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

-- 
Nuno Martins
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20110711/90e5f3ce/attachment.html 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help