Linux下功耗测试开发初探

1、前言

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

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

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

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

2、需要抓住哪些锚点?

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

1. suspend-resume(何时进入suspend、持续时间、何时退出suspend、谁唤醒了系统):machine_suspend

2. cpuidle(切换点、时长、状态):cpuidle

3. cpufreq(何时切换、切换到什么频点、持续多久):cpu_frequency

4. 中断(哪个中断、何时触发、中断函数处理耗时):irq_handler_entry、irq_handler_exit

5. wakeup source():wakeup_source_activate、wakeup_source_deactivate

6. 电源域(哪个电源域、设置状态):power_domain_target

7. 时钟(哪个时钟、何时开、何时关、频率变动):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

时间: 2024-10-01 17:37:27

Linux下功耗测试开发初探的相关文章

Linux下spi驱动开发

转载至:http://www.embedu.org/Column/Column367.htm 作者:刘洪涛,华清远见嵌入式学院讲师. 一.概述 基于子系统去开发驱动程序已经是linux内核中普遍的做法了.前面写过基于I2C子系 统的驱动开发.本文介绍另外一种常用总线SPI的开发方法.SPI子系统的开发和I2C有很多的相似性,大家可以对比学习.本主题分为两个部分叙述,第一 部分介绍基于SPI子系统开发的理论框架:第二部分以华清远见教学平台FS_S5PC100上的M25P10芯片为例(内核版本2.6

linux下配置LAMP开发环境,以及常用小细节

本来安装没什么可说到.但是在linux当中容易会出现各种各样到问题.我安装以后导致各种问题 比如php无法正常解析,数据库无法关闭,Apache无法开启等等........ 所以搞得我比较郁闷,现在把过程分享下,大家不要在走弯路 最后按照这个顺序来装,避免出问题 [plain] view plaincopy sudo apt-get install mysql-server-5.0 sudo apt-get install apache2 sudo apt-get install php5 li

Linux下搭建Java开发环境

Red Hat Package Manager 简称rpm rpm格式的文件就是我们可以使用RPM命令进行管理的软件包格式的文件 JDK的安装 #sh /root/Desktop/jdk-6u23-linux-i586-rpm.bin .bin 可以使用sh命令来解压执行 Linux的用户的登录过程 /etc/profile /etc/profile.d(各个脚本) /etc/bash.bashrc /home/[username]具体用户目录/.bashrc .bash_profile JDK

Linux下使用Eclipse开发Hadoop应用程序

在前面一篇文章中介绍了如果在完全分布式的环境下搭建Hadoop0.20.2,现在就再利用这个环境完成开发. 首先用hadoop这个用户登录linux系统(hadoop用户在前面一篇文章中创建的),然后下载eclipse的tar.gz包到/home/hadoop/这个目录下,直接解压缩,于是就会存在/home/hadoop/eclipse这个目录.在开发之前需要将hadoop0.20.2目录下面的一个jar复制到eclipse下面去.(注:在上一篇文章中我将hadoop0.20.2文件夹修改成了h

Linux教程:如何在Linux下进行C++开发?

Linux是一类Unix计算机操作系统的统称,Linux操作系统的内核的名字也是“Linux”, 在Linux下进行C++开发,需要注意许多问题,比如:减少不必要的编辑动作,减少编辑的时间. Windows下,开发工具多以集成开发环境IDE的形式展现给最终用户.例如,VS2005集成了编辑器,宏汇编ml,C /C++编译器cl,资源编译器rc,调试器,文档生成工具, nmake.它们以集成方式提供给最终用户,对于初学者而言十分方便. 但是,这种商业模式,直接导致用户可定制性差,不利于自动化,集成

Linux下配置PHP开发环境

转载于: http://www.uxtribe.com/php/405.html 该站下有系列PHP文章. 在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件外,还要安装一些相关工具,设置必要参数.而且,如果要使用PHP扩展库,还要进行编译.安装之前要准备如下安装包: http-2.2.8.tar.gz.下载地址:http://www.apache.org. php-5.2.5.tar.gz.下载地址:http://www.php.net/downloa

Linux下搭建PHP开发环境(LAMP)

LAMP:Linux+Apache+Mysql/MariaDB+Perl/PHP/Python 安装方法如下: 注:Ubuntu下可使用sudo su 命名切换到root用户. 开始安装之前,先执行EZHTTP安装前的准备工作. 一.使用screen(可选) 由于编译安装Nginx Apache PHP MySQL等软件会花费比较长的时间,难免会出现由于网络意外中断而导致安装也中断了,所以为了避免此问题,可以使用screen来安装. screen的使用方法如下: 1.安装screen ubunt

《Python入门》Linux 下 Python Web开发环境搭建笔记

之前写过 Windows 7下Python Web开发环境搭建笔记,今天写一下在Linux系统下搭建Python Web的开发测试环境. 我使用的系统是:ubuntu 14.04 server,根据个人经验,CentOS 6.5 下也适用. 关于Python的版本 进入Python的网站,鼠标移到导航条上的下载,我们会发现提供两下主版本的下载链接! 这两个之间存在什么差别呢? 个人理解,2.7.x的版本为更加稳定的版本,而3.x的版本则是比较前卫的版本,包含了很多新功能新特性之类的: 但如果想要

浅谈Linux下的LAMP开发环境的搭建及discuz、phpWind、phpBB3、wordpress各种论坛博客的安装

LAMP开发可以说非常流行了,稳定安全的Linux系统和apache服务器搭配轻量级的PHP.MYSQL可以说是完美组合.可以在效率和安全性等各个方面都比ASP.NET.JSP等动态语言优胜一筹.这也是php这么流行的原因之一.说到Linux,不得不说这是一个最好用的操作系统,因为它安全,效率高,对于任何一个细节都力求做到完美.因为它是许多GEEK们汗水的结晶.那么今天所讲就是LAMP开发中最基本的就是搭建LAMP环境.在Linux下搭建该环境非常简单,可以说非常简单,没有太多环境配置的过程.可