1、前言

Linux嵌入式设备开发,对于功耗要求较高。在遇到问题的时候,定位手段有限。

关于功耗一种是静态功耗,指的是某一种状态下的功耗情况,在这种状态下尽量低的功耗,比如cpuidle、suspend、cpuhotplug等;

另一种是动态功耗,指的是各种状态的切换,比如susped-resume、cpuidle不同状态切换、中断、wakelock等等。

静态功耗的调试,可以在特定状态下测量功耗,逐步优化;但是在动态功耗,也即系统运行时,影响功耗的因素千差万别,瞬息万变,就需要在测量功耗的时候抓住系统运行轨迹。

2、需要抓住哪些锚点?

要测量功耗因素,就要了解那些内核行为导致了功耗增加或减少?具体需要抓住哪些轨迹,比如:

1. suspend-resume(何时进入suspend、持续时间、何时退出suspend、谁唤醒了系统):machine_suspend2. cpuidle(切换点、时长、状态):cpuidle3. cpufreq(何时切换、切换到什么频点、持续多久):cpu_frequency4. 中断(哪个中断、何时触发、中断函数处理耗时):irq_handler_entry、irq_handler_exit5. wakeup source():wakeup_source_activate、wakeup_source_deactivate6. 电源域(哪个电源域、设置状态):power_domain_target7. 时钟(哪个时钟、何时开、何时关、频率变动):clock_enable、clock_disable、clock_set_rate

其他轨迹:

8. 定时器(定时器创建、启动、超时、取消,包括低精度定时器和高精度定时器):低精度定时器(timer_init、timer_start、timer_cancel、timer_expire_entry、timer_expire_exit)、高精度定时器(hrtimer_init、hrtimer_start、hrtimer_expire_entry、hrtimer_expire_exit、hrtimer_cancel)

9. ...

可以把这些一个个Traceevents看做功耗信息锚点,下面逐个分析这些锚点。

2.1 trace_machine_suspend

2.2 trace_cpu_idle_rcuidle/

2.3 trace_cpu_frequency

2.4 trace_irq_handler_entry/trace_irq_handler_exit

2.5 trace_wakeup_source_activate/trace_wakeup_source_deactivate

2.6

2.7

2.8 trace_timer_start/trace_timer_cancel/trace_timer_expire_entry/trace_timer_expire_exit

原文:http://www.cnblogs.com/arnoldlu/p/7381039.html

linux内核功耗优化,Linux下功耗测试开发初探相关推荐

  1. Linux内核怎么优化,linux 内核该怎么优化

    Linux系统下,TCP连接断开后,会以TIME_WAIT状态保留一定的时间,然后才会释放端口.当并发请求过多的时候,就会产生大量的TIME_WAIT状态的连接,无法及时断开的话,会占用大量的端口资源 ...

  2. 从入门到精通ARM(4412)-Linux内核驱动编程【下】-李志勇-专题视频课程

    从入门到精通ARM(4412)-Linux内核驱动编程[下]-247人已学习 课程介绍         嵌入式绝对是当前IT领域最炙手可热的话题了.其主要应用领域涵盖与人类相关的各行各业: * 消费电 ...

  3. linux内核参数优化

    这是电商类的 linux内核参数优化,在网站响应上已经很不错了,time超时连接几乎为0了. sysctl.conf配置参数如下: net.ipv4.ip_forward = 0 net.ipv4.c ...

  4. linux内核参数优化 for 高并发服务器

    2019独角兽企业重金招聘Python工程师标准>>> linux内核参数优化net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_fil ...

  5. linux内核优化脚本,linux内核高级优化脚本

    linux内核高级优化脚本 可以用于hadoop生态圈环境的组件安装 linux内核调优 具体的每一步的解释请参考 03搭建cdh 备注:使用与centos6和centos7两个系统版本执行 [[em ...

  6. 手机linux内核版本了解,Linux内核版本介绍与查询

    Linux内核版本命名在不同时期有着不同的规范,在涉及到Linux版本问题时经常容易混淆,主线版本/稳定版/长期支持版本经常搞不清楚,本文主要记录下内核版本命名的规则以及如何查看Linux系统版本信息 ...

  7. 编译3.0的linux内核,1-3-编译Linux内核

    1-3-编译Linux内核 1.将Linux源码包拷贝到共享文件夹. 2.进入共享文件夹. 3.解压,命令#tar xvfj Kernel_3.0.8_TQ210_for_Linux_v2.2.tar ...

  8. linux内核 can总线,Linux Canbus调试笔记

    http://blog.csdn.net/flydream0/article/details/8161418 CAN总线在嵌入式Linux下驱动程序的实现 http://www.21ic.com/ap ...

  9. linux内核精髓:精通linux内核必会的75个绝技,Linux内核精髓精通Linux内核必会的75个绝技 PDF 高清扫描版...

    经过近20年的发展,Linux操作系统已经成为当今最成功的开源软件之一,使用广泛,影响深远.随着Linux操作系统功能的不断丰富和完善,Linux内核的源代码也从最初的几万行增加到如今的数百万行,庞大 ...

  10. 2021-10-16python笔记(Linux内核简介与Linux基础命令)

    前面的博文已经教会了大家如何下载和安装Linux操作系统,并且使用Xshell软件远程连接Linux服务器,这节课我们要进入真正的Linux基础学习中. 知识点概括: 1.Linux的心脏-Linux ...

最新文章

  1. RabbitMQ管理(5)——集群管理
  2. 报表系统FineReport通过权限控制数据访问方案
  3. 一文搞懂JVM架构:入职3个月的Java程序员面临转正
  4. MySQL LIST分区(转载)
  5. 原生支付url参数错误_小程序支付
  6. 防抖与节流方案_函数防抖和节流
  7. 终于找到个好办法备份数据库了
  8. 机器学习之分类决策树节点划分指标
  9. 服务器安装python虚拟环境
  10. ffmpeg aac解码pcm
  11. GBK字库 ISO 10646 Unicode UTF8
  12. php企业微信获取userid,企业微信端项目登陆、获取用户信息流程等
  13. Android多媒体之GL-ES战记第一集--勇者集结
  14. vue 跳转路由后返回上一页还是当前页面,但是路由地址有改变(已解决)
  15. 极光笔记|百亿级KV存储在极光的运维实践之路
  16. VUE实现页面局部刷新
  17. 游泳馆会员管理系统功能图
  18. 重大喜讯!精灵云校V5.0家校互通正式上线,助力机构打造完美服务体系!
  19. CSS3画八卦太极图(绕一个圆旋转)
  20. php 同时缩表,别被缩表吓懵了!比它更猛的料来了!

热门文章

  1. 写给程序员的时间管理
  2. mysqli mysql_将MySQL转化为mysqli
  3. 学英语英语基础词汇汇总
  4. 【Golang】聊聊我为什么决定以Go作为第二开发语言
  5. html 文档设置标记,html文档设置标记
  6. centos7搭建公共/私有xss平台
  7. android中hprof文件分析
  8. 服务器安装nginx详细步骤( 小白都能看懂,亲测可行)
  9. vux 选择器_vue项目中vux的使用
  10. SQL Server 计划作业