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

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

那么, task_structon_rq字段的实际用途是什么?

顺便说一下,是否存在一些手册或阅读材料介绍task_struct所有领域? 我认为对这些领域的充分理解将有助于澄清Linux进程调度的机制。

Linux支持系统中每个CPU的单独运行队列。 Task或task_struct可以在运行队列中。 另外task_struct可以迁移beat之间的CPU。 p-> on_rq表示task_struct正在两个运行队列之间进行迁移。 如果p-> on_rq == TASK_ON_RQ_MIGRATING任务正在迁移,而其他sheduler与此任务不能工作,它应该忙于等待。 设置为TASK_ON_RQ_QUEUED之后。