Linux 电源管理子系统在仿真环境下提供5种测试方式。这些方式仅仅在内核各层之间运行休眠的代码而不是真正的让系统进入休眠状态。有些平台不能挂起系统,好比说咱们须要模拟飞机的飞行环境,这时候使用这种仿真环境就很是有用处了。html
freezer - 测试停掉处理器:linux
echo freezer > /sys/power/pm_testecho platform > /sys/power/diskecho disk > /sys/power/state
devices - 测试停掉处理器以及挂起设备:git
echo devices > /sys/power/pm_testecho platform > /sys/power/diskecho disk > /sys/power/state
platform - 测试停掉处理器、挂起设备以及平台全局控制方法(*)github
echo platform > /sys/power/pm_testecho platform > /sys/power/diskecho disk > /sys/power/state
processors - 测试停掉处理器、挂起设备和平台全局控制方法(*),以及关闭未启动的 CPU。less
echo processors > /sys/power/pm_testecho platform > /sys/power/diskecho disk > /sys/power/state
core - 测试停掉处理器、挂起设备和平台全局控制方法(*),关闭未启动的 CPU,以及挂起平台或系统的设备。注意:这个测试模式运行在 ACPI 系统。工具
echo core > /sys/power/pm_testecho platform > /sys/power/diskecho disk > /sys/power/state
电源管理子系统在运行过程当中支持多种追踪点和追踪事件。我将对如何使用这些追踪时间以及如何找到追踪信息做一个简单的介绍:测试
在运行时开启电源管理事件:spa
cd /sys/kernel/debug/tracing/events/powerecho 1 > cpu_frequency/enablecat /sys/kernel/debug/tracing/set_eventless /sys/kernel/debug/tracing/trace
为内核启动的命令添加一个参数:翻译
trace_event=cpu_frequency
更多信息查看 Documentation/power/basic-pm-debugging.txt 以及同目录下其余的文档。debug
git bisect 是一个很是有用很是强大的工具,用于将 git 上的一个 commit 分离出来。我简单过一遍它的用法。
下面是 git bisect 的用法:
git bisect startgit bisect bad # 当前版本是坏的git bisect good v3.14-rc6 # 上个版本是好的
一旦指定好好的版本和坏的版本,git bisect 就会开始把好坏两个版本之间的全部 commit 对半分,并将其中的一半提交 pull 下来。而后从新编译安装测试内核,并标记这个内核是好是坏。重复这个过程,知道某个你选好的 commit 被标记被好或者坏。咱们可能须要测试多个内核版本,测到最后一个版本时,git bisect 会将一个 commit 标记为坏。下面的命令能够在 git bisect 分析过程当中起到帮助做用:
查看 bisect 操做的过程:
git bisect log
重置 git bisect,标记错误时能够用到,保存 git log 的输出,从新操做上一次 bisect 的步骤:
git bisect reset
重放 git bisect 操做过程:
git bisect replay git_log_output
若是一个问题很清楚是在某个区域内,git bisect 命令能够定位到一个具体的内核源码树枝干上。举个例子,在调试一个镭龙显卡驱动的问题时,为 git bisect 指定 drivers/drm/radeon 参数,能够让 git bisect 只检索对 drivers/drm/radeon 里面的文件有修改的 commit。
让 git bisect 只检索内核树的某个枝干:
git bisect start drivers/drm/radeon
via: http://www.linuxjournal.com/content/linux-kernel-testing-and-debugging?page=0,4
来源: linuxjournal
原文: http://www.linuxjournal.com/content/linux-kernel-testing-and-debugging?page=0,4
译者: bazz2
本文是原创投递或翻译投递,Linux中国首发地址:http://linux.cn/article-3683-1.html
欢迎转载,敬请在正文中标注并保留原文/译文连接和做者/译者等信