函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:enqueue_task_dl

函数原型:static void enqueue_task_dl(struct rq *rq, struct task_struct *p, int flags)

返回类型:void

参数:

类型参数名称
struct rq *rq
struct task_struct *p
intflags
1474  pi_task等于rt_mutex_get_top_task(p)
1475  pi_se等于dl
1485  如果pi_taskdl_prio(动态优先级)且dl_boosted
1486  pi_se等于dl
1487  否则如果非dl_prio(动态优先级)则
1495  BUG_ON(!dl_boosted || flags != ENQUEUE_REPLENISH)
1496  返回
1505  如果非* 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且非Regarding the deadline, a task with implicit deadline has a relative* deadline == relative period. A task with constrained deadline has a* relative deadline <= relative period.* We support constrained deadline tasks. However, there are some restrictionsDuring the activation, CBS checks if it can reuse the current task's* runtime and period
1508  如果归属队列恒等于TASK_ON_RQ_MIGRATINGflags按位与ENQUEUE_RESTORE
1509  add_rq_bw( & dl, & dl)
1510  add_running_bw( & dl, & dl)
1525  如果* 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且非flags按位与ENQUEUE_REPLENISH的值则
1526  如果flags按位与ENQUEUE_WAKEUPtask_contending( & dl, flags)
1529  返回
1532  enqueue_dl_entity( & dl, pi_se, flags)
1534  如果非task_current(rq, p)且nr_cpus_allowed大于1则enqueue_pushable_dl_task(rq, p)
调用者
名称描述
dl_task_timerThis is the bandwidth enforcement timer callback
update_curr_dlUpdate the current task's runtime statistics (provided it is still* a -deadline task and has not been removed from the dl_rq).