函数逻辑报告 |
Source Code:kernel\sched\rt.c |
Create Date:2022-07-27 10:39:48 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:do_sched_rt_period_timer
函数原型:static int do_sched_rt_period_timer(struct rt_bandwidth *rt_b, int overrun)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct rt_bandwidth * | rt_b | |
| int | overrun |
| 817 | span等于sched_rt_period_mask() |
| 832 | enqueue等于0 |
| 833 | rt_rq等于sched_rt_period_rt_rq(rt_b, i) |
| 834 | rq等于rq_of_rt_rq(rt_rq) |
| 841 | raw_spin_lock( & Nests inside the rq lock: ) |
| 842 | 如果非sched_feat(RT_RUNTIME_SHARE)且rt_runtime不等于Single value that denotes runtime == period, ie unlimited time.则rt_runtime等于rt_runtime |
| 844 | skip等于非rt_time且非rt_nr_running |
| 845 | raw_spin_unlock( & Nests inside the rq lock: ) |
| 846 | 如果skip则继续下一循环 |
| 849 | raw_spin_lock( & 运行队列锁) |
| 850 | 更新rq运行时间 |
| 852 | 如果rt_time则 |
| 855 | raw_spin_lock( & Nests inside the rq lock: ) |
| 856 | 如果rt_throttled则balance_runtime(rt_rq) |
| 858 | runtime等于rt_runtime |
| 860 | 如果rt_throttled且rt_time小于runtime则 |
| 861 | rt_throttled等于0 |
| 862 | enqueue等于1 |
| 874 | 如果rt_time或rt_nr_running则idle等于0 |
| 876 | raw_spin_unlock( & Nests inside the rq lock: ) |
| 877 | 否则如果rt_nr_running则 |
| 878 | idle等于0 |
| 879 | 如果非rt_rq_throttled(rt_rq)则enqueue等于1 |
| 882 | 如果rt_throttled则throttled等于1 |
| 885 | 如果enqueue则sched_rt_rq_enqueue(rt_rq) |
| 887 | raw_spin_unlock( & 运行队列锁) |
| 890 | 如果非throttled且非rt_bandwidth_enabled()或rt_runtime恒等于Single value that denotes runtime == period, ie unlimited time.的值则返回:1 |
| 893 | 返回:idle |
| 名称 | 描述 |
|---|---|
| sched_rt_period_timer |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |