Hi Srivatsa,<div><br></div><div>(Thats an interesting pointer. I didnt know about cgroups freeze. Thanks.)</div><div><br></div><div>However, I&#39;m trying to figure out how the kernel would go about doing it. i.e How the kernel, having a pointer to a task struct, goes about removing something from the runqueue. or bringing something from a TASK_INTERRUPTIBLE/STOPPED state back onto the runqueue. </div>
<div><br></div><div>I&#39;m trying to figure this out from looking at the code, but am sort of getting lost.</div><div><br></div><div>I guess I can rephrase the question as, I dont really need to do it for any other purpose other than understanding how the kernel mechanisms will accomplish it. i.e Doing it from userspace using &quot;kill&quot; or cgroups freeze wont &quot;uncover&quot; this for me.</div>
<div><br></div><div>Hope my question is clearer,</div><div><br></div><div>Thanks for replies guys,</div><div>Amit</div><div><br></div><div><br><br><div class="gmail_quote">On Wed, Sep 19, 2012 at 3:09 AM, Srivatsa Bhat <span dir="ltr">&lt;<a href="mailto:bhat.srivatsa@gmail.com" target="_blank">bhat.srivatsa@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 Amit<div><br><div class="gmail_quote"><div class="im">On Wed, Sep 19, 2012 at 4:49 AM, Amit Gupta <span dir="ltr">&lt;<a href="mailto:gupta.v.amit@gmail.com" target="_blank">gupta.v.amit@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">
<br>Hi Kshemendra,<div><br></div><div>I think I couldn&#39;t get my first question across clearly. My intent isn&#39;t to change do_fork()&#39;s implementation. That wont work for precisely the reason you mentioned.(Infact everything after the init process would end up blocked). </div>


<div><br></div><div>My question was more to explore if an existing running process can be explicitly taken off the runqueue once we have a pointer to its task_struct.</div><div><br></div></blockquote><div><br></div></div>
<div>
If you simply want to stop a running process and resume it at your will,</div><div>you don&#39;t need to write any kernel code at all. Simply use the cgroup</div><div>freezer functionality from userspace. You can find more details in</div>

<div>Documentation/cgroups/freezer-subsystem.txt in the kernel sources.</div><div><br></div><div>Regards,</div><div>Srivatsa S. Bhat</div><div><br></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Amit Gupta<br><br>
</div>