函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\sched\core.c Create Date:2022-07-27 10:36:41
Last Modify:2022-05-22 13:40:38 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:选择下一个要运行的进程

函数原型:static inline struct task_struct *pick_next_task(struct rq *rq, struct task_struct *prev, struct rq_flags *rf)

返回类型:struct task_struct

参数:

类型参数名称
struct rq *rq
struct task_struct *prev
struct rq_flags *rf
3922  如果此条件成立可能性大(为编译器优化)((调度函数 == & idle_sched_class || 调度函数 == & fair_sched_class) && 可运行进程数 == SCHED_{NORMAL,BATCH,IDLE} )则
3926  p等于pick_next_task_fair(rq, prev, rf)
3927  如果此条件成立可能性小(为编译器优化)(p == RETRY_TASK)则转到:restart
3931  如果非p
3932  put_prev_task(rq, prev)
3933  p等于pick_next_task_idle(rq)
3936  返回:p
3939  restart :
3955  put_prev_task(rq, prev)
3957  for_each_class(class)
3958  p等于pick_next_task(rq)
3959  如果p则返回:p
3964  BUG()
调用者
名称描述
__schedule调度器