On Mon, Jul 11, 2011 at 5:34 PM, loody <[email protected]> wrote:

> Hi all:
>
>
> 2011/7/12 loody <[email protected]>
>
>> 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
> [email protected]
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
>


-- 
Nuno Martins
_______________________________________________
Kernelnewbies mailing list
[email protected]
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to