Linux 内核测试和调试(5)

仿真环境下进行 Linux 电源管理子系统测试

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

Linux 电源管理子系统追踪事件

电源管理子系统在运行过程当中支持多种追踪点和追踪事件。我将对如何使用这些追踪时间以及如何找到追踪信息做一个简单的介绍:测试

在运行时开启电源管理事件: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 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

译者:bazz2 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

 

来源: linuxjournal

    原文: http://www.linuxjournal.com/content/linux-kernel-testing-and-debugging?page=0,4        

        译者: bazz2

               

本文是原创投递或翻译投递,Linux中国首发地址:http://linux.cn/article-3683-1.html

欢迎转载,敬请在正文中标注并保留原文/译文连接和做者/译者等信

相关文章
相关标签/搜索