当前位置:网站首页>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
边栏推荐
- VLAN experiment
- Idea debug failed
- Find the combination number acwing 888 Find the combination number IV
- Huawei bracelet, how to add medicine reminder?
- Knapsack problem acwing 9 Group knapsack problem
- Gauss Cancellation acwing 884. Solution d'un système d'équations Xor linéaires par élimination gaussienne
- SolidWorks template and design library are convenient for designers to call
- 6-3 find the table length of the linked table
- Skywalking全部
- MQClientException: No route info of this topic: type_ topic
猜你喜欢
TCP's understanding of three handshakes and four waves
Knapsack problem acwing 9 Group knapsack problem
Game theory acwing 894 Split Nim game
Chinese remainder theorem acwing 204 Strange way of expressing integers
Get class files and attributes by reflection
背包问题 AcWing 9. 分组背包问题
Redis-01. First meet redis
7. Oracle table structure
Stack acwing 3302 Expression evaluation
Package webapp or H5 pages into apps
随机推荐
Find the combination number acwing 887 Find combination number III
The “mode“ argument must be integer. Received an instance of Object
Getting started with typescript
P2575 master fight
What's wrong with this paragraph that doesn't work? (unresolved)
PR automatically moves forward after deleting clips
Alibaba established the enterprise digital intelligence service company "Lingyang" to focus on enterprise digital growth
Vant weapp swippecell set multiple buttons
LSA Type Explanation - lsa-1 [type 1 LSA - router LSA] detailed explanation
Interval problem acwing 906 Interval grouping
4. Oracle redo log file management
Package webapp or H5 pages into apps
Redis-01. First meet redis
Day 2 document
Markdown syntax
Design specification for mobile folding screen
RecyclerView的应用
vsCode创建自己的代码模板
区间问题 AcWing 906. 区间分组
Configuration method and configuration file of SolidWorks GB profile library