在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 SUSPEND,Home对ASPY的能做什么?有什么益处?适用于谁?进行了介绍。
Overview对如何使用ASPY进行优化进行了解读。
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. 分析实例
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?