2016-12-29 47 views
0

與ftrace類似,我有一個函數,它打印armv7板上引導內核時調用的所有函數的地址。在功能調用setup_arch功能之前地址被正確打印,但在此之後,隨機地址被打印。我認爲它是自旋鎖的問題,因爲映射時這些地址涉及的功能如_raw_spin_lock_irqsaveadd_preempt_count。它可能不是螺旋鎖問題。 關於如何解決它的任何建議?隨機地址在armv7引導內核時無限期地打印

+0

spin_lock函數在'start_kernel'後廣泛調用似乎是合理的。你爲什麼說這些是隨機地址? – levengli

+0

@levengli我有我自己的函數,就像我在'start_kernel'中添加的用於測試目的的問題所說的那樣。它在'setup_arch'之前正確地打印內核函數的地址,但是在打印出指向鎖的隨機地址之後。有什麼辦法可以禁用自旋鎖嗎? – arceus

回答

0

根據您的評論,問題是如何禁用spin_locks以闡明日誌文件。

雖然在多核系統上禁用鎖定會產生影響,但可能會導致系統出錯達到崩潰的程度 - 可以這樣做。

include/linux/spinlock.h表明可以通過編譯內核來禁用spin_locks,其中CONFIG_SMPCONFIG_DEBUG_SPINLOCK未定義。

+0

我認爲這可能是由於一些試圖獲得自旋鎖的中斷。有什麼方法可以檢查在運行我的功能時是否啓用了中斷。 – arceus