Function report |
Source Code:kernel\sched\deadline.c |
Create Date:2022-07-28 09:40:09 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Update the current task's runtime statistics (provided it is still* a -deadline task and has not been removed from the dl_rq).
Proto:static void update_curr_dl(struct rq *rq)
Type:void
Parameter:
Type | Parameter | Name |
---|---|---|
struct rq * | rq |
1198 | now = rq_clock_task(rq) |
1199 | delta_exec = now - exec_start |
1200 | If Value for the false possibility is greater at compile time((s64)delta_exec <= 0) Then |
1201 | If Value for the false possibility is greater at compile time(dl_yielded) Then Go to throttle |
1203 | Return |
1206 | schedstat_set(exec_max, max - return maximum of two values of the same or compatible types*@x: first value*@y: second value(exec_max, delta_exec)) |
1209 | sum_exec_runtime += delta_exec |
1212 | exec_start = now |
1213 | cgroup_account_cputime(curr, delta_exec) |
1215 | If dl_entity_is_special(dl_se) Then Return |
1229 | Else |
1230 | scale_freq = arch_scale_freq_capacity(cpu) |
1231 | scale_cpu = arch_scale_cpu_capacity(cpu) |
1233 | scaled_delta_exec = cap_scale(delta_exec, scale_freq) |
1239 | throttle : |
1240 | If dl_runtime_exceeded(dl_se) || dl_yielded Then |
1244 | If dl_runtime_exceeded(dl_se) && Specifying the scheduler behaviour & SCHED_FLAG_DL_OVERRUN Then dl_overrun = 1 |
1248 | __dequeue_task_dl(rq, curr, 0) |
1267 | If rt_bandwidth_enabled() Then |
1270 | raw_spin_lock( & Nests inside the rq lock: ) |
1276 | If sched_rt_bandwidth_account(rt_rq) Then rt_time += delta_exec |
1278 | raw_spin_unlock( & Nests inside the rq lock: ) |
Name | Describe |
---|---|
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 |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |