函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\sched\deadline.c Create Date:2022-07-27 10:40:37
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:This is the bandwidth enforcement timer callback

函数原型:static enum hrtimer_restart dl_task_timer(struct hrtimer *timer)

返回类型:enum hrtimer_restart

参数:

类型参数名称
struct hrtimer *timer
980  dl_se等于container_of - cast a member of a structure out to the containing structure*@ptr: the pointer to the member.*@type: the type of the container struct this is embedded in.*@member: the name of the member within the struct.(timer, structsched_dl_entity, dl_timer)
983  p等于dl_task_of(dl_se)
987  rq等于ask_rq_lock - lock p->pi_lock and lock the rq @p resides on.
993  如果非dl_task(p)则转到:unlock
1000  如果dl_boosted则转到:unlock
1007  如果非* Some bool flags: *@dl_throttled tells if we exhausted the runtime. If so, the * task has to wait for a replenishment to be performed at the * next firing of dl_timer. *@dl_boosted tells if we are boosted due to DI. If so we are * outside bandwidth enforc则转到:unlock
1010  sched_clock_tick()
1011  更新rq运行时间
1027  如果非进程处于任务队列
1028  Pure Earliest Deadline First (EDF) scheduling does not deal with the* possibility of a entity lasting more than what it declared, and thus* exhausting its runtime
1029  转到:unlock
1051  enqueue_task_dl(rq, p, ENQUEUE_REPLENISH)
1052  如果dl_task(当前任务)则check_preempt_curr_dl(rq, p, 0)
1054  否则标记当前进程需要被调度出去
1073  unlock :
1074  task_rq_unlock(rq, p, & rf)
1080  put_task_struct(p)
1082  返回:Timer is not restarted