这周问过公司里专家,说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的更多相关文章

  1. Android/Linux下CGroup框架分析及其使用

    1 cgroup介绍 CGroup是control group的简称,它为Linux kernel提供一种任务聚集和划分的机制,可以限制.记录.隔离进程组(process groups)所使用的资源( ...

  2. Linux 内核引导选项简介

    Linux 内核引导选项简介 作者:金步国 连接地址:http://www.jinbuguo.com/kernel/boot_parameters.html 参考参数:https://www.cnbl ...

  3. 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 ...

  4. 现在的 Linux 内核和 Linux 2.6 的内核有多大区别?

    作者:larmbr宇链接:https://www.zhihu.com/question/35484429/answer/62964898来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  5. QTI EAS学习之find_energy_efficient_cpu

    Energy Awareness Scheduler是由ARM和Linaro开发的新的linux kernel调度器. 原先CFS调度器是基于policy进行调度,并有不同的吞吐量.例如,有一个新的t ...

  6. WALT(Window Assisted Load Tracking)学习

    QCOM平台使用WALT(Window Assisted Load Tracking)作为CPU load tracking的方法:相对地,ARM使用的是PELT(Per-Entity Load Tr ...

  7. Cpusets学习

    1. cpusets 1.1 什么是cpusets cpusets基本功能是限制某一组进程只运行在某些cpu和内存节点上,举个简单例子:系统中有4个进程,4个内存节点,4个cpu.利用cpuset可以 ...

  8. Linux 内核引导参数简介

    概述 内核引导参数大体上可以分为两类:一类与设备无关.另一类与设备有关.与设备有关的引导参数多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导参数.比如,如果你想知道可以向 AHA ...

  9. Linux Cgroup v1(中文翻译)(2):CPUSETS

    英文原文:https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/cpusets.html Copyright (C) 2004 BU ...

  10. 拨开迷雾,找回自我:DDD 应对具体业务场景,Domain Model 到底如何设计?

    写在前面 除了博文内容之外,和 netfocus 兄的讨论,也可以让你学到很多(至少我是这样),不要错过哦. 阅读目录: 迷雾森林 找回自我 开源地址 后记 毫无疑问,领域驱动设计的核心是领域模型,领 ...

随机推荐

  1. java自定义泛型 面试题:接收任意数组进行反转 泛型通配符

    不用泛型只能操作某种类型进行反转 代码如下: package com.swift.fanxing; import org.junit.Test; public class RenyiReverse { ...

  2. Centos7下MySql5.7安装及配置

    安装MySql 软件包: mysql-community-libs-5.7.22-1.el7.x86_64.rpm mysql-community-common-5.7.22-1.el7.x86_64 ...

  3. SHGetSpecialFolderLocation获取开始文件夹

    SHGetSpecialFolderLocation函数可以获取windows 特殊目录 函数原型:(MSDN官方链接:https://msdn.microsoft.com/en-us/library ...

  4. JQuery实现层级菜单

    效果图: HTML代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  5. 描述linux目录结构以及目录结构命名规定

    FHS全称(Filesystem Hierarchy Standard),中文意思是目录层次标准,是linux的目录规范标准. 详情点击查看 FHS定义了两层规范: 第一层:“/”目录下的各个目录应该 ...

  6. give me something new 无用但有趣

    屏保系列 http://www.asty.org/cmatrix/dist/cmatrix-1.2a.tar.gz  //数码雨 libaa-bin //燃烧 海洋馆 http://search.cp ...

  7. linux命令讲解

    1.vi命令 1.光标移动到文件的最后一行 G     :$     ]] 2.光标移动到文件的第一行 :0     gg     [[ 3.从光标所在位置将光标移动到当前行的开头 0     ^   ...

  8. 解决php文字及图片显示乱码的问题

    我们在学习PHP的过程中,想必有不少新手朋友们都遇到过乱码的问题,解决乱码问题不仅是小白们必须掌握的基础知识点,也是最为常见的PHP面试题之一.下面就结合简单代码示例给大家总结介绍下,PHP遇到乱码时 ...

  9. scrapy--dytt(电影天堂)

    喜欢看电影的小伙伴,如果想看新的电影,然后没去看电影院看,没有正确的获得好的方法,大家就可以在电影天堂里进行下载.这里给大家提供一种思路. 1.dytt.py # -*- coding: utf-8 ...

  10. php-语言参考-基本语法3.1

    一,PHP代码的开始和结束标记 1,<?php 和 ?> //重点 2,<script language="php"> 和 </script> ...