当前位置:网站首页>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
边栏推荐
- Game theory acwing 891 Nim games
- Interval problem acwing 906 Interval grouping
- 博弈论 AcWing 892. 台阶-Nim游戏
- Game theory acwing 893 Set Nim game
- C job interview - casting and comparing - C job interview - casting and comparing
- Genesis builds a new generation of credit system
- 代码中的英语全部
- 20220213-CTF MISC-a_ good_ Idea (use of stegsolve tool) -2017_ Dating_ in_ Singapore
- Mutual transformation between two-dimensional array and sparse array (sparse matrix)
- Written examination notes
猜你喜欢

Utf8 encoding

容斥原理 AcWing 890. 能被整除的数

All English in the code

数据库Mysql全部

Sum of two numbers, the numbers in the array are converted to decimal, added, and output inversely

Positive height system
![[2021]GIRAFFE: Representing Scenes as Compositional Generative Neural Feature Fields](/img/65/7fa32cd0005ddaaebacd85c25e0c7e.jpg)
[2021]GIRAFFE: Representing Scenes as Compositional Generative Neural Feature Fields

Mutual transformation between two-dimensional array and sparse array (sparse matrix)

UTC, GPS time and Tai

Alibaba's new member "Lingyang" officially appeared, led by Peng Xinyu, Alibaba's vice president, and assembled a number of core department technical teams
随机推荐
how to understand the “model independent.“
Modnet matting model reproduction
P2575 master fight
[QT] QT multithreading development qthread
2022 winter vacation training game 5
5.Oracle-表空间
1. Create Oracle database manually
Positive height system
Game theory acwing 893 Set Nim game
背包问题 AcWing 9. 分组背包问题
Bash exercise 17 writing scripts to install the server side of FRP reverse proxy software
Speedtree01 generator properties
3. Oracle control file management
All English in the code
H5 module suspension drag effect
5.Oracle-錶空間
Written examination notes
博弈论 AcWing 892. 台阶-Nim游戏
Vant Weapp SwipeCell设置多个按钮
Day 2 document