1. 背景

这里涉及到两个工具analyze_suspend.py和Workload Automation。

下面analyze_suspend.py简称为ASPY,Workload Automation简称为WA。

ASPY着重于对Suspend/Resume流程进行分析,然后得出每个阶段的分析结果。对流程进行优化,流程越短也就意味着更低的功耗。

WA是ARM维护的用于自动产生特定负荷,然后进行测试,获取结果并给出分析结果的自动化工具。

将ASPY融入WA,有助于对Suspend/Resume进行自动化分析,并且获取批量分析结果。

1.2 ASPY介绍

在《Suspend to RAM和Suspend to Idle分析,以及在HiKey上性能对比》中使用analyze_suspend.py对HiKey的suspend/resume进行量化,并进行了优化。

ASPY官网:https://01.org/zh/suspendresume

代码维护:https://github.com/01org/pm-graph/

官网维护在ANALYZE SUSPENDHome对ASPY的能做什么?有什么益处?适用于谁?进行了介绍。

Overview对如何使用ASPY进行优化进行了解读。

Community介绍了代码维护在Github上。

Getting Started详细介绍了如何使用ASPY,包括Downloading、Configure kernel、Configure command line、Usage等等。

News&Blogs是一些案例的介绍。

1.3 WA介绍

WA是用于Linux或Android平台执行workload,并且测量结果、分析输出报告。

Workload Automation分析及其使用》中对WA进行了分析并给出了一个简单示例。

3. 基于WA对ASPY进行自动化

将ASPY融入进WA大概分为两部分,一部分是创建workload,另一部分是创建分析结果的result_processor。

3.1 创建Suspend Workload

执行suspend workload,需要借助于RTC作为Resume源;对/sys/power/state写入mem/freeze触发suspend流程,然后等待RTC设备超时唤醒触发resume流程。

同时需要在在触发suspend流程之前,清空ftrace和dmesg,并设置好Tracepoints;在resume流程之后,保存ftrace和dmesg。

3.1.1 关于class Workload

class Workload是所有workloads的基类,其中主要成员如下:

paramenters是此Workload的参数。

setup是Workload的配置工作,在run之前。

run是执行此Workload的核心。

update_result在run之后获取测试结果。

teardown做一些收尾工作。

validate在Workload开始前进行一些有效性验证。

3.1.2 实现Suspend Workload

3.2 创建SuspendAnalyze result_processor

4. 分析实例

在Workload Automation中实现suspend分析的更多相关文章

  1. Workload Automation分析及其使用

    Workload Automation介绍 Workload Automation是提供一个在设备上运行各种workload的工具,使用Python编写.WA具有良好的框架结构,方便快捷的扩展.包含几 ...

  2. Android中Linux suspend/resume流程

    Android中Linux suspend/resume流程首先我们从linux kernel 的suspend说起,不管你是使用echo mem > /sys/power/state 或者使用 ...

  3. Android中AppWidget的分析与应用:AppWidgetProvider .

    from: http://blog.csdn.net/thl789/article/details/7887968 本文从开发AppWidgetProvider角度出发,看一个AppWidgetPrv ...

  4. JAVA WEB 中的编码分析

    JAVA WEB 中的编码分析 */--> pre.src {background-color: #292b2e; color: #b2b2b2;} pre.src {background-co ...

  5. Android 中图片压缩分析(上)

    作者: shawnzhao,QQ音乐技术团队一员 一.前言 在 Android 中进行图片压缩是非常常见的开发场景,主要的压缩方法有两种:其一是质量压缩,其二是下采样压缩. 前者是在不改变图片尺寸的情 ...

  6. 《构建之法》教学笔记——Python中的效能分析与几个问题

    <构建之法:现代软件工程>中第2章对效能分析进行了介绍,基于的工具是VSTS.由于我教授的学生中只有部分同学选修了C#,若采用书中例子讲解,学生可能理解起来比较困难.不过所有这些学生都学习 ...

  7. Apollo配置中心源码分析

    Apollo配置中心源码分析 1. apollo的核心代码分享 SpringApplication启动的关键步骤 在SpringApplication中,会加载所有实现了Init方法的类 protec ...

  8. HanLP中人名识别分析

    HanLP中人名识别分析 在看源码之前,先看几遍论文<基于角色标注的中国人名自动识别研究> 关于命名识别的一些问题,可参考下列一些issue: 名字识别的问题 #387 机构名识别错误 关 ...

  9. linux内核中链表代码分析---list.h头文件分析(一)【转】

    转自:http://blog.chinaunix.net/uid-30254565-id-5637596.html linux内核中链表代码分析---list.h头文件分析(一) 16年2月27日17 ...

随机推荐

  1. Gradle 1.12用户指南翻译——第二十六章. War 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

  2. Palette状态栏颜色提取,写的不错就分享了

    Palette 说Palette之前先说下前面提到的Pager.ViewPager是什么大家应该都是知道的了,一般ViewPager.xxxTabStrip.Fragment三个好基友是一起出现的.这 ...

  3. CRF资料

    与最大熵模型相似,条件随机场(Conditional random fields,CRFs)是一种机器学习模型,在自然语言处理的许多领域(如词性标注.中文分词.命名实体识别等)都有比较好的应用效果.条 ...

  4. UML类图简介

    概述 设计模式中常常使用UML来表示类与类,类与接口之间的关系,UML类图是设计模式入门必备的技能,感觉各种关系比较多,这里做一下总结. 类与接口的表示 类与接口通常是一个矩形框表示,一般分为3层,第 ...

  5. C标准中关于空指针的那些事

    1 C标准不保证用所有二进制位都为0的变量来表示空指针,但它保证空指针与任何对象或函数的指针都不相等,取地址操作符&永远也不会返回空指针: 2 C标准称在指针上下文中的"值为0的整形 ...

  6. ubuntu安装最新的rails-4.2.0

    完全按照教程来,可是错误不断,还是边装边baidu吧! sudo gem install rails 安装了一大坨关联gem之后,终于好了.于是想小试一下身手,新建文件夹rails_test,cd进入 ...

  7. ES6之let命令

    ES6新增了let命令,用来声明变量.它的用法类似于var. let和var声明变量的区别: 1.let声明的变量,只在let命令所在的代码块内有效,出了这个块级作用域就不起作用 先看一个例子: { ...

  8. 十分钟搞定mongodb副本集

    mongodb副本集配置 最近项目中用到了mongodb,由于是用mongodb来记录一些程序的日志信息和日常的统计,为了增加应用的可靠性,一直在找mongodb集群的一些资料,下面是对最近做的一个小 ...

  9. xmlrpc

    xmlrpc编辑 官方URL:http://ws.apache.org/xmlrpc/xmlrpc2/index.html 本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! x ...

  10. Memcache 运行情况

    Memcache Memcache是danga.com的一个开源项目,它是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的Hash表,能够用来存储各种格式的数据. 查看当前的me ...