当前位置:网站首页>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 table structure
- Getting started with typescript
- [learning] database: MySQL query conditions have functions that lead to index failure. Establish functional indexes
- 2022-5-the fourth week daily
- Positive height system
- Skywalking全部
- P3265 [jloi2015] equipment purchase
- 求组合数 AcWing 889. 满足条件的01序列
- FFmpeg build下载(包含old version)
- Using handler in a new thread
猜你喜欢

Financial risk control practice -- feature derivation based on time series

2.Oracle-数据文件的添加及管理

P2575 master fight

Series of how MySQL works (VIII) 14 figures explain the atomicity of MySQL transactions and the principle of undo logging

Bit of MySQL_ OR、BIT_ Count function

confidential! Netease employee data analysis internal training course, white whoring! (attach a data package worth 399 yuan)

'mongoexport 'is not an internal or external command, nor is it a runnable program or batch file.

Client use of Argo CD installation

Vscode configures the typera editor for MD

Rehabilitation type force deduction brush question notes D2
随机推荐
2. Addition and management of Oracle data files
容斥原理 AcWing 890. 能被整除的数
3. Oracle control file management
Vscode creates its own code template
Chart. JS - Format Y axis - chart js - Formatting Y axis
在本地搭建一个微服务集群环境,学习自动化部署
2048项目实现
TypeScript入门
[2021]IBRNet: Learning Multi-View Image-Based Rendering Qianqian
Find the combination number acwing 887 Find combination number III
Alibaba established the enterprise digital intelligence service company "Lingyang" to focus on enterprise digital growth
Install opencv -- CONDA to establish a virtual environment and add the kernel of this environment in jupyter
1.手动创建Oracle数据库
AE tutorial - path growth animation
Database mysql all
[Chongqing Guangdong education] National Open University 2018 autumn 0702-22t contemporary Chinese political system reference questions
Chinese remainder theorem acwing 204 Strange way of expressing integers
7.Oracle-表结构
[Gaode map POI stepping pit] amap Placesearch cannot be used
A brief introduction to heading/pitch/roll and omega/phi/kappa