当前位置:网站首页>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
边栏推荐
- 7.Oracle-表结构
- 【高德地图POI踩坑】AMap.PlaceSearch无法使用
- Time is fast, please do more meaningful things
- 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
- 7. Oracle table structure
- C job interview - casting and comparing - C job interview - casting and comparing
- 2048 project realization
- The route of wechat applet jumps again without triggering onload
- SolidWorks template and design library are convenient for designers to call
- 2048项目实现
猜你喜欢

7. Oracle table structure

Interval problem acwing 906 Interval grouping

求组合数 AcWing 888. 求组合数 IV

Game theory acwing 893 Set Nim game

how to understand the “model independent.“

Find the combination number acwing 888 Find the combination number IV

Day 2 document

All English in the code

Bit of MySQL_ OR、BIT_ Count function

Skywalking全部
随机推荐
7. Oracle table structure
PR automatically moves forward after deleting clips
TypeScript入门
7.Oracle-表结构
Gaussian elimination acwing 884 Gauss elimination for solving XOR linear equations
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
博弈论 AcWing 894. 拆分-Nim游戏
Get class files and attributes by reflection
Getting started with typescript
Game theory acwing 892 Steps Nim game
LSA Type Explanation - lsa-1 [type 1 LSA - router LSA] detailed explanation
MPLS experiment
__ builtin_ Popcount() counts the number of 1s, which are commonly used in bit operations
5.Oracle-表空间
Vscode creates its own code template
P2575 master fight
Redis-01. First meet redis
求组合数 AcWing 889. 满足条件的01序列
Configuration method and configuration file of SolidWorks GB profile library
How to set the drop-down arrow in the spinner- How to set dropdown arrow in spinner?