linux内核功耗优化,Linux下功耗测试开发初探
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下功耗测试开发初探相关推荐
- Linux内核怎么优化,linux 内核该怎么优化
Linux系统下,TCP连接断开后,会以TIME_WAIT状态保留一定的时间,然后才会释放端口.当并发请求过多的时候,就会产生大量的TIME_WAIT状态的连接,无法及时断开的话,会占用大量的端口资源 ...
- 从入门到精通ARM(4412)-Linux内核驱动编程【下】-李志勇-专题视频课程
从入门到精通ARM(4412)-Linux内核驱动编程[下]-247人已学习 课程介绍 嵌入式绝对是当前IT领域最炙手可热的话题了.其主要应用领域涵盖与人类相关的各行各业: * 消费电 ...
- linux内核参数优化
这是电商类的 linux内核参数优化,在网站响应上已经很不错了,time超时连接几乎为0了. sysctl.conf配置参数如下: net.ipv4.ip_forward = 0 net.ipv4.c ...
- linux内核参数优化 for 高并发服务器
2019独角兽企业重金招聘Python工程师标准>>> linux内核参数优化net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_fil ...
- linux内核优化脚本,linux内核高级优化脚本
linux内核高级优化脚本 可以用于hadoop生态圈环境的组件安装 linux内核调优 具体的每一步的解释请参考 03搭建cdh 备注:使用与centos6和centos7两个系统版本执行 [[em ...
- 手机linux内核版本了解,Linux内核版本介绍与查询
Linux内核版本命名在不同时期有着不同的规范,在涉及到Linux版本问题时经常容易混淆,主线版本/稳定版/长期支持版本经常搞不清楚,本文主要记录下内核版本命名的规则以及如何查看Linux系统版本信息 ...
- 编译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 ...
- linux内核 can总线,Linux Canbus调试笔记
http://blog.csdn.net/flydream0/article/details/8161418 CAN总线在嵌入式Linux下驱动程序的实现 http://www.21ic.com/ap ...
- linux内核精髓:精通linux内核必会的75个绝技,Linux内核精髓精通Linux内核必会的75个绝技 PDF 高清扫描版...
经过近20年的发展,Linux操作系统已经成为当今最成功的开源软件之一,使用广泛,影响深远.随着Linux操作系统功能的不断丰富和完善,Linux内核的源代码也从最初的几万行增加到如今的数百万行,庞大 ...
- 2021-10-16python笔记(Linux内核简介与Linux基础命令)
前面的博文已经教会了大家如何下载和安装Linux操作系统,并且使用Xshell软件远程连接Linux服务器,这节课我们要进入真正的Linux基础学习中. 知识点概括: 1.Linux的心脏-Linux ...
最新文章
- RabbitMQ管理(5)——集群管理
- 报表系统FineReport通过权限控制数据访问方案
- 一文搞懂JVM架构:入职3个月的Java程序员面临转正
- MySQL LIST分区(转载)
- 原生支付url参数错误_小程序支付
- 防抖与节流方案_函数防抖和节流
- 终于找到个好办法备份数据库了
- 机器学习之分类决策树节点划分指标
- 服务器安装python虚拟环境
- ffmpeg aac解码pcm
- GBK字库 ISO 10646 Unicode UTF8
- php企业微信获取userid,企业微信端项目登陆、获取用户信息流程等
- Android多媒体之GL-ES战记第一集--勇者集结
- vue 跳转路由后返回上一页还是当前页面,但是路由地址有改变(已解决)
- 极光笔记|百亿级KV存储在极光的运维实践之路
- VUE实现页面局部刷新
- 游泳馆会员管理系统功能图
- 重大喜讯!精灵云校V5.0家校互通正式上线,助力机构打造完美服务体系!
- CSS3画八卦太极图(绕一个圆旋转)
- php 同时缩表,别被缩表吓懵了!比它更猛的料来了!