在使用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。就能正常执行了。