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