linux调度程序中的SD_WAKE_仿射标志,但没有SD_BALANCE_WAKE标志

linux调度程序中的SD_WAKE_仿射标志,但没有SD_BALANCE_WAKE标志,linux,scheduler,Linux,Scheduler,在两个级别的我的调度程序域中(我的arch有两个sd级别),设置了sd_WAKE_AFFINE标志,但未设置sd_BALANCE_WAKE。但是,如果没有设置SD_BALANCE_WAKE标志,我就看不到在fair调度器中使用WAKE_AFFINE。有人能解释一下吗?在仔细研究了一下内核代码之后,我发现当任务在cpu上唤醒时,SD_BALANCE_WAKE会作为函数参数(SD_标志)传递给select_fair_rq_task()函数。此函数是通用的,因为即使在分叉或执行新任务时也会调用它。SD

在两个级别的我的调度程序域中(我的arch有两个sd级别),设置了sd_WAKE_AFFINE标志,但未设置sd_BALANCE_WAKE。但是,如果没有设置SD_BALANCE_WAKE标志,我就看不到在fair调度器中使用WAKE_AFFINE。有人能解释一下吗?

在仔细研究了一下内核代码之后,我发现当任务在cpu上唤醒时,SD_BALANCE_WAKE会作为函数参数(SD_标志)传递给select_fair_rq_task()函数。此函数是通用的,因为即使在分叉或执行新任务时也会调用它。SD_BALANCE_WAKE标志与SD_WAKE_AFFINE标志结合使用,可选择正确的SD,从而为唤醒情况选择cpu。