Hi All, I wanted help with a piece of code that I have been working on. Please see - https://gist.github.com/jerrinsg/333e584d1f65dc95b9f13b61dcebdaa7 I have written two function, migrate_to and migrate_back. migrate_to is used to remove a process from the run queue, and migrate_back is used to insert this process back into the run queue. The gist is from a taken from a larger project, where we are working on building a mechanism to support thread migration across heterogeneous processors. migrate_to_call() will be called by a thread which wants to remove itself from the run queue (hence, it will pass the current task struct as the migration argument). Once the other processor completes execution of the assigned task, it will interrupt the main processor, which runs an interrupt handler, which in turn calls the migrate_back_call() function. It passes the task struct of the process that was removed from the run queue earlier to this function. This mechanism works fine the first few times, but when this process is repeated many times in a loop, I am seeing a run queue corruption: https://gist.github.com/jerrinsg/0ab09cd435d8d2cb6ae692c7e6f4f26b Is there anything wrong in the process dequeue or enqueue function that I have written? Please help! Kernel used: Linux 3.13 Thanks, Jerrin _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies