在使用memtester工具對DDR進行壓力測試時,出現了一下的報錯:
# memtester 200M 1
memtester version 4.3.0 (32-bit)
Copyright (C) 2001-2012 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).
pagesize is 4096
pagesizemask is 0xfffff000
want 200MB (209715200 bytes)
got 200MB (209715200 bytes), trying mlock ...locked.
Loop 1/1:
Stuck Address : testing 0Bus error
也就是最後顯示的“Bus error”,剛巧,不就之前在我這塊Linux系統的ARM板子上使用benchmark測試的時候也出現了“Bus error”的錯誤,一時沒有找到什麼原因。網上對這個錯誤有很多的說法,其中有一個觀點是:Linux平臺上執行malloc(),如果沒有足夠的RAM,Linux不是讓malloc()失敗返回,而是向當前進程分發SIGBUS信號。所以我懷疑是memtester申請的內存太大了(200M),所以我改爲:memtester 50M 1。就能正常執行了。