在linux调度程序中设置\u tsk\u need\u resched()行为

在linux调度程序中设置\u tsk\u need\u resched()行为,linux,linux-kernel,kernel,Linux,Linux Kernel,Kernel,我一直在研究linux调度器和任务调度的基础知识。set_tsk_need_resched()允许重新安排任务。所以我有一个关于日程安排的问题 在调度程序中调用set_tsk_need_resched(next)时的行为是什么 这是否会强制在计划程序选择下一个任务并从_schedule()返回时再次调用计划程序?set_need_resched函数只在任务结构中设置一个need_resched标志,告知计划程序必须重新安排此任务。因此,此任务将在调度程序调用的下一个实例上重新调度。这通常发生在任

我一直在研究linux调度器和任务调度的基础知识。set_tsk_need_resched()允许重新安排任务。所以我有一个关于日程安排的问题

在调度程序中调用set_tsk_need_resched(next)时的行为是什么


这是否会强制在计划程序选择下一个任务并从_schedule()返回时再次调用计划程序?

set_need_resched函数只在任务结构中设置一个need_resched标志,告知计划程序必须重新安排此任务。因此,此任务将在调度程序调用的下一个实例上重新调度。这通常发生在任务执行上下文切换或从中断返回或系统调用返回(再次执行上下文切换)等,或延迟调用may_sleep()时。“需要重新调整”标志通常由计时器刻度处理程序设置,在某些特殊情况下也是如此

set_need_resched函数除了在任务结构中设置need_resched标志外,什么都不做,该标志告诉调度程序必须重新调度此任务。因此,此任务将在调度程序调用的下一个实例上重新调度。这通常发生在任务执行上下文切换或从中断返回或系统调用返回(再次执行上下文切换)等,或延迟调用may_sleep()时。“需要重新调整”标志通常由计时器刻度处理程序设置,在某些特殊情况下也是如此