函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |