当前位置:网站首页>CGroup CPU group source code analysis
CGroup CPU group source code analysis
2022-07-05 06:38:00 【techtitan】
cpu group pick_next function
The following code comes from pick_next_task_fair
6739 /*
6740 * Because of the set_next_buddy() in dequeue_task_fair() it is rather
6741 * likely that a next task is from the same cgroup as the current.
6742 *
6743 * Therefore attempt to avoid putting and setting the entire cgroup
6744 * hierarchy, only change the part that actually changes.
6745 */
6746
6747 do {
6748 struct sched_entity *curr = cfs_rq->curr;
6749
6750 /*
6751 * Since we got here without doing put_prev_entity() we also
6752 * have to consider cfs_rq->curr. If it is still a runnable
6753 * entity, update_curr() will update its vruntime, otherwise
6754 * forget we've ever seen it.
6755 */
6756 if (curr) {
6757 if (curr->on_rq)
6758 update_curr(cfs_rq);
6759 else
6760 curr = NULL;
6761
6762 /*
6763 * This call to check_cfs_rq_runtime() will do the
6764 * throttle and dequeue its entity in the parent(s).
6765 * Therefore the nr_running test will indeed
6766 * be correct.
6767 */
6768 if (unlikely(check_cfs_rq_runtime(cfs_rq))) {
6769 cfs_rq = &rq->cfs;
6770
6771 if (!cfs_rq->nr_running)
6772 goto idle;
6773
6774 goto simple;
6775 }
6776 }
6777
6778 **se = pick_next_entity(cfs_rq, curr);**
6779 **cfs_rq = group_cfs_rq(se);**
6780 } while (cfs_rq);
279 /* runqueue "owned" by this group */
280 static inline struct cfs_rq *group_cfs_rq(struct sched_entity *grp)
281 {
282 return grp->my_q;
283 }
1) If cpu original rq pick_next_entity Choose right and wrong cgoup node , that 6779 Line return empty , namely my_q It's empty
2) If 6778 Row selected cgroup The root node of sched_entity, Then according to cgroup The hierarchy traverses once , To the last layer node sched_entity Of my_q It's empty , Is the real task entity
group share Calculation
4.19 calc_group_shares
边栏推荐
- NVM Downloading npm version 6.7.0... Error
- Gaussian elimination acwing 884 Gauss elimination for solving XOR linear equations
- Positive height system
- MySQL (UDF authorization)
- ollvm编译出现的问题纪录
- Modnet matting model reproduction
- Knapsack problem acwing 9 Group knapsack problem
- 2.Oracle-数据文件的添加及管理
- 3.Oracle-控制文件的管理
- 2048 project realization
猜你喜欢

5. Oracle tablespace

Adg5412fbruz-rl7 applies dual power analog switch and multiplexer IC

博弈论 AcWing 894. 拆分-Nim游戏

Vant Weapp SwipeCell设置多个按钮

Sorting out the latest Android interview points in 2022 to help you easily win the offer - attached is the summary of Android intermediate and advanced interview questions in 2022
![[algorithm post interview] interview questions of a small factory](/img/62/6e330b1eba38f2dc67b21a10f0e2a8.jpg)
[algorithm post interview] interview questions of a small factory

NVM Downloading npm version 6.7.0... Error

Utf8 encoding

Vant weave swipecell sets multiple buttons

求组合数 AcWing 888. 求组合数 IV
随机推荐
LSA Type Explanation - lsa-5 (type 5 LSA - autonomous system external LSA) and lsa-4 (type 4 LSA - ASBR summary LSA) explanation
5. Oracle tablespace
Vant weapp swippecell set multiple buttons
将webApp或者H5页面打包成App
Dameng database all
[Chongqing Guangdong education] 1185t administrative leadership reference test of National Open University in autumn 2018
Skywalking全部
博弈论 AcWing 894. 拆分-Nim游戏
Genesis builds a new generation of credit system
There are three kinds of SQL connections: internal connection, external connection and cross connection
Install opencv -- CONDA to establish a virtual environment and add the kernel of this environment in jupyter
LSA Type Explanation - lsa-1 [type 1 LSA - router LSA] detailed explanation
Vant weave swipecell sets multiple buttons
Package webapp or H5 pages into apps
数据库Mysql全部
Use ffmpeg to rotate, flip up and down, and flip horizontally
How to correctly ask questions in CSDN Q & A
背包问题 AcWing 9. 分组背包问题
2022/6/29-日报
FFmpeg build下载(包含old version)