faster way to find task
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,
Hi all: 2011/7/12 loody <miloody@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? -- Regards,
On Mon, Jul 11, 2011 at 5:34 PM, loody <miloody@gmail.com> wrote:
Hi all:
2011/7/12 loody <miloody@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@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Nuno Martins
hi: 2011/7/12 Nuno Martins <nuno.m.g.martins@gmail.com>:
On Mon, Jul 11, 2011 at 5:34 PM, loody <miloody@gmail.com> wrote:
Hi all:
2011/7/12 loody <miloody@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?
Thanks for your help :)
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.
actually, I only have the name for searching, since the thread start and finish periodically, pid of it will change dynamically. The only thing that fixed is the name of the thread.
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 *find_task_by_vpid(pid_t vnr); Have a good work. I will check what you mentioned above. Thanks a lot,
participants (2)
-
loody -
Nuno Martins