zoukankan      html  css  js  c++  java
  • 在Workload Automation中实现suspend分析

    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. 分析实例

  • 相关阅读:
    STM32 变量无法赋值问题
    ROS 多台计算机联网控制机器人
    Content-Disposition
    Arrays.asList()与toArray()
    length与size()
    computeIfAbsent
    共享锁、排他锁与意向锁
    行锁、页面锁与表锁
    classpath是什么
    start、run、join
  • 原文地址:https://www.cnblogs.com/arnoldlu/p/7615152.html
Copyright © 2011-2022 走看看