啥叫sched-domain
这周问过公司里专家,说cpu-load是说CPU的计算能力,但是从代码实在不知道cpu-load说的是啥!
SD_SHARE_CPUPOWER 0X8000 domain的成员共享cpu power!
SD_SHARE_PKG_RESOURCES domain成员共享pkg resource!
为什么要引入rt scale down的问题?
e9e9250bc78e7f6342517214c0178a529807964b
这个commit中的解释是:
sched: scale down cpu_power due to RT tasks
keep an average of amount of time spent on RT time and use the fraction to scale down the cpu_power for regular task,这个是
-------------------------------
sched_rt_avg_update 的巧妙计算方法:
static inline void sched_rt_avg_update(struct rq *rq, u64 rt_delta)
{
rq->rq_avg += rt_data;
sched_avg_update(rq);
}
void sched_avg_update(struct rq *rq)
{
s64 period = sched_avg_period();
while(s64(rq->clock - rq->age_stamp) > pereriod)) {
rq->age_stamp += period;
rq->rt_avg /= 2;
}
详细分析下上面的公式发生了啥,
while循环不断在把age_stamp往rq->clock上靠,但是
}
--------------------------------
这个值在初始化sched-group的时候用的最多,是说smt关系的看看cpu的能力到底是多少吗?
http://cache.baiducontent.com/c?m=9d78d513d98210fc06ba837f7d01d0120e55f0237ac0d16568d3e75f9214191c0231a3af60624e0b89833a2516ae3a41f7b57337200357e3d1cb8b4ccabbe57478ce3a77230b863711c419d9cb4523c023934de9d84aa6f8ba&p=993dc64ad4934eaf5be7e6291c7a93&newp=8f368d0a86cc41ac52fec7710f00c4231610db2151d4da01298ffe0cc4241a1a1a3aecbf21241406d3c2786206ae4e5deef034743d0034f1f689df08d2ecce7e3c&user=baidu&fm=sc&query=scale%5Frt%5Fpower&qid=ed7985e500042b74&p1=7
该函数用于计算指定CPU上可用于完全公平调度的CPU POWER统计值。
比如把整个CPU的Power 看为 SCHED_LOAD_SCALE,
该CPU上用于运行实时进程平均时间为rq->rt_avg.
那么可用于完全公平调度的时间就为 available = total - rq->avg.
然后 ( available / total ) * SCHED_LOAD_SCALE就是该CPU可用于运行非实时进程的Power值。
unsigned long scale_rt_power(int cpu)
{
struct rq *rq = cpu_rq(cpu);
u64 total, available;
sched_avg_update(rq);
total = sched_avg_period() + (rq->clock - rq->age_stamp);
available = total - rq->rt_avg;
if (unlikely((s64)total < SCHED_LOAD_SCALE))
total = SCHED_LOAD_SCALE;
total >>= SCHED_LOAD_SHIFT;
return div_u64(available, total);
}
啥叫sched-domain的更多相关文章
- Android/Linux下CGroup框架分析及其使用
1 cgroup介绍 CGroup是control group的简称,它为Linux kernel提供一种任务聚集和划分的机制,可以限制.记录.隔离进程组(process groups)所使用的资源( ...
- Linux 内核引导选项简介
Linux 内核引导选项简介 作者:金步国 连接地址:http://www.jinbuguo.com/kernel/boot_parameters.html 参考参数:https://www.cnbl ...
- cgroup 分析之CPU和内存部分
https://ggaaooppeenngg.github.io/zh-CN/2017/05/07/cgroups-%E5%88%86%E6%9E%90%E4%B9%8B%E5%86%85%E5%AD ...
- 现在的 Linux 内核和 Linux 2.6 的内核有多大区别?
作者:larmbr宇链接:https://www.zhihu.com/question/35484429/answer/62964898来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...
- QTI EAS学习之find_energy_efficient_cpu
Energy Awareness Scheduler是由ARM和Linaro开发的新的linux kernel调度器. 原先CFS调度器是基于policy进行调度,并有不同的吞吐量.例如,有一个新的t ...
- WALT(Window Assisted Load Tracking)学习
QCOM平台使用WALT(Window Assisted Load Tracking)作为CPU load tracking的方法:相对地,ARM使用的是PELT(Per-Entity Load Tr ...
- Cpusets学习
1. cpusets 1.1 什么是cpusets cpusets基本功能是限制某一组进程只运行在某些cpu和内存节点上,举个简单例子:系统中有4个进程,4个内存节点,4个cpu.利用cpuset可以 ...
- Linux 内核引导参数简介
概述 内核引导参数大体上可以分为两类:一类与设备无关.另一类与设备有关.与设备有关的引导参数多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导参数.比如,如果你想知道可以向 AHA ...
- Linux Cgroup v1(中文翻译)(2):CPUSETS
英文原文:https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/cpusets.html Copyright (C) 2004 BU ...
- 拨开迷雾,找回自我:DDD 应对具体业务场景,Domain Model 到底如何设计?
写在前面 除了博文内容之外,和 netfocus 兄的讨论,也可以让你学到很多(至少我是这样),不要错过哦. 阅读目录: 迷雾森林 找回自我 开源地址 后记 毫无疑问,领域驱动设计的核心是领域模型,领 ...
随机推荐
- machine learning trends from nips14
from John Platt, Deputy Managing Director and Distinguished Scientist at Microsoft Research http://b ...
- React后台管理系统-订单管理
1.订单管理页面和商品管理页面类似,都是一个搜索组件+列表组件 2.搜索框search组件 import React from 'react'; class ListSearch extends ...
- java Web 常见错误集锦 及解决方法
只能删除pid为整数的商品,32位的pid商品不能删除? 原因onclick="agree('${s.pid}')" 括号中需要加 ' ' 删除多余的工作空间? 使用prefer ...
- LeetCode700. Search in a Binary Search Tree
题目 给定二叉搜索树(BST)的根节点和一个值. 你需要在BST中找到节点值等于给定值的节点. 返回以该节点为根的子树. 如果节点不存在,则返回 NULL. 例如, 给定二叉搜索树: 4 / \ 2 ...
- select into from 和 insert into select
select into from 和 insert into select都是用来复制表, 两者的主要区别为: select into from 要求目标表不存在,因为在插入时会自动创建. inser ...
- C++基础 对象的管理——单个对象的管理
1. 为什么要有构造函数和析构函数 面向对象的思想是从生活中来,手机.车出厂时,是一样的. 这些对象都是被初始化后才上市的,初始化是对象普遍存在的一个状态. 普通方案: 对每个类提供一个 init 函 ...
- 2,MongoDB之增删改查及pymongo的使用
本章我们来学习一下关于 MongoDB的增删改查 一.MongoDB操作 之 原生ORM,根本不存在SQL语句 创建数据库:这里和一般的关系型数据库一样,都要先建立一个自己的数据库空间 是的,Mong ...
- 微信小程序 | 51,live新课“小程序UI容器组件”的课堂计划
零基础前端自学入门:小程序UI容器组件 这是一节以UI布局.容器组件的使用为主题的live,专注于布局与容器这一个点,努力把这一点讲透.这是继4月22日整体入门live“零基础周末学习小程序开发”之后 ...
- jquery跨域解决方案JSONP
1.在互联网中我们的计算机是通过IP来定位的,但是IP比较难记忆,因此通过domain name(域名)来取代IP 2.什么是跨域? (1)默认浏览器为了安全问题,禁止了xmlhttprequest跨 ...
- 剑指Offer - 九度1350 - 二叉树的深度
剑指Offer - 九度1350 - 二叉树的深度2013-11-23 00:54 题目描述: 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的 ...