<br><br><div class="gmail_quote">On Mon, Jul 11, 2011 at 5:34 PM, loody <span dir="ltr">&lt;<a href="mailto:miloody@gmail.com">miloody@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi all:<div><div></div><div class="h5"><br><br><div class="gmail_quote">2011/7/12 loody <span dir="ltr">&lt;<a href="mailto:miloody@gmail.com" target="_blank">miloody@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>Dear all:<br clear="all"></div><div>Is there faster way to find a give name of task?</div><div>for example, I have a thread, named &quot;test&quot;, is there faster way to get the task struct  by passing &quot;test&quot; to some kernel api?</div>


<div><br></div><font color="#888888"><div><br></div>-- <br>Regards,<br>
</font></blockquote></div></div></div><div>I found a way as below:<br></div><div>for_each_process(task) { <br>printk(“%s[%d]\n”, task-&gt;comm, task-&gt;pid);<br></div><div>}<br clear="all"></div><div><br></div><div>But it is time-consuming to do so if I periodically want to know whether &quot;test&quot; exist or not.</div>

<div>is there better way to do so?</div><div><br></div><font color="#888888"><br></font></blockquote><div><br></div><div><meta http-equiv="content-type" content="text/html; charset=utf-8">If you have the thread pid you could find it really fast. By name i don&#39;t know any function that could help you with that.</div>
<div>You could search [1,2] for functions that could help you with that. </div><div>If you are invoking from the thread you want, inside the kernel you can get the current variable that points to ther current process.</div>
<div><br></div><div><br></div><div> [1]  <a href="http://lxr.linux.no/linux+v2.6.39/kernel/pid.c#L426">http://lxr.linux.no/linux+v2.6.39/kernel/pid.c#L426</a></div><div> [2] <span class="Apple-style-span" style="font-family: monospace; white-space: pre; font-size: medium; ">struct <a href="http://lxr.linux.no/linux+v2.6.39/+code=task_struct" class="sref">task_struct</a> *<a href="http://lxr.linux.no/linux+v2.6.39/+code=find_task_by_vpid" class="sref">find_task_by_vpid</a>(<a href="http://lxr.linux.no/linux+v2.6.39/+code=pid_t" class="sref">pid_t</a> <a href="http://lxr.linux.no/linux+v2.6.39/+code=vnr" class="sref">vnr</a>);</span></div>
<meta http-equiv="content-type" content="text/html; charset=utf-8"><meta http-equiv="content-type" content="text/html; charset=utf-8"><div><br></div><div>Have a good work.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<font color="#888888">-- <br>Regards,<br>
</font><br>_______________________________________________<br>
Kernelnewbies mailing list<br>
<a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
<a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Nuno Martins<br><br>