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
歡迎轉載,敬請在正文中標註並保留原文/譯文連接和做者/譯者等信