faster way to find task

Nuno Martins nuno.m.g.martins at gmail.com
Mon Jul 11 13:01:26 EDT 2011


On Mon, Jul 11, 2011 at 5:34 PM, loody <miloody at gmail.com> wrote:

> Hi all:
>
>
> 2011/7/12 loody <miloody at gmail.com>
>
>> 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 


More information about the Kernelnewbies mailing list