函数逻辑报告 |
Source Code:kernel\sched\deadline.c |
Create Date:2022-07-27 10:40:43 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Update the current task's runtime statistics (provided it is still* a -deadline task and has not been removed from the dl_rq).
函数原型:static void update_curr_dl(struct rq *rq)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
struct rq * | rq |
1198 | now等于rq_clock_task(rq) |
1199 | delta_exec等于now减exec_start |
1200 | 如果此条件成立可能性小(为编译器优化)((s64)delta_exec <= 0)则 |
1201 | 如果此条件成立可能性小(为编译器优化)(dl_yielded)则转到:throttle |
1203 | 返回 |
1206 | schedstat_set(exec_max, 两数取大(exec_max, delta_exec)) |
1209 | sum_exec_runtime加等于delta_exec |
1212 | exec_start等于now |
1213 | cgroup_account_cputime(curr, delta_exec) |
1215 | 如果dl_entity_is_special(dl_se)则返回 |
1229 | 否则 |
1231 | scale_cpu等于arch_scale_cpu_capacity(cpu) |
1239 | throttle : |
1240 | 如果dl_runtime_exceeded(dl_se)或dl_yielded则 |
1244 | 如果dl_runtime_exceeded(dl_se)且 Specifying the scheduler behaviour 按位与SCHED_FLAG_DL_OVERRUN则dl_overrun等于1 |
1248 | __dequeue_task_dl(rq, curr, 0) |
1252 | 如果非is_leftmost(curr, & dl)则标记当前进程需要被调度出去 |
1267 | 如果rt_bandwidth_enabled()则 |
1270 | raw_spin_lock( & Nests inside the rq lock: ) |
1276 | 如果sched_rt_bandwidth_account(rt_rq)则rt_time加等于delta_exec |
1278 | raw_spin_unlock( & Nests inside the rq lock: ) |
名称 | 描述 |
---|---|
dequeue_task_dl | |
yield_task_dl | Yield task semantic for -deadline tasks is:* get off from the CPU until our next instance, with* a new runtime |
put_prev_task_dl | |
task_tick_dl | scheduler tick hitting a task of our scheduling class |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |