`task_struct`中`on_rq`字段的用途是什么?

时间:2015-06-23 16:47:20

标签: linux linux-kernel scheduling

我现在正在阅读Linux内核try_to_wake_up()函数的源代码。这个功能做了很多,包括:return p->on_rq == TASK_ON_RQ_QUEUED

那么,on_rqtask_struct字段的实际目的是什么。

顺便说一句,是否有一些手册或阅读材料来介绍task_struct中的所有字段?我认为完全理解这些领域将有助于澄清Linux进程调度的机制。

1 个答案:

答案 0 :(得分:1)

Linux支持系统中每个CPU的独立运行队列。 任务或task_struct可以在运行队列中。还有task_struct 可以在cpu之间迁移。 p-> on_rq表示task_struct 正处于两个运行队列之间迁移的过程中。 如果p-> on_rq == TASK_ON_RQ_MIGRATING任务正在迁移, 其他sheduler用这个任务无法工作它应该忙等。 设置为TASK_ON_RQ_QUEUED后。