I want to test integrity and global performances of no-ECC memory chips on a custom board
Are there some tools that run under linux so I can monitor system and global temperature in the same time ?
Are there some no-ECC specific tests to do in general ?
EDIT 1:
I already know how to monitor temperature (I use a special platform feature /sys/devices/platform/......../temp1_input).
For now :
- wazoox : it works but I've to code my own tests
- Jason Huntley :
- ramspeed : does not work on arm
- stream benchmark : it works and is very fast, so I'll look if it's accurate and complete
- memtest : I'll try later, since it does not run directly from linux
- stress for fedora : I'll try later too, it's too problematic for me to install fedora now
I found this distribution : http://www.stresslinux.org/sl/
I'll continue to check tools that run directly under linux without too big dependencies, after I'll maybe give a try to solutions like stresslinux, memtest, stress for fedora.
Thanks for you answers, I'll continue to investigate
Here's the way I sometimes test ram: first mount two tmpfs (by default tmpfs is half the ram):
Check free memory and free space:
Now fill the tmpfs with dd:
You can check that your memory is actually quite full:
Now you may run various tests, for instance check that both temp files are identical, directly or running md5sum, sha1sum, etc:
About temperature monitoring, I know only of lm-sensors. I don't know if it manages your particular hardware, but you probably could give it a try anyway.
RamSpeed is the only multiplatform memory benchmark tool I'm aware of. You might be able to compile it for arm, if supported:
https://github.com/cruvolo/ramspeed-smp
If it's not supported, you might be able to benchmark using stream:
https://web.archive.org/web/20211104122453/http://www.cs.virginia.edu/stream/
Here, I've used memtest on many occasions for integrity checking and it works great:
http://www.memtest.org/
*Note, I've only read this supports Arm. However, I haven't tested on an Arm.
If the distribution you're using supports yum, you can easily install lm_sensors:
yum install lm_sensors
You can also download and compile from: here http://www.lm-sensors.org/
However, I'm not certain it will provide temperature data regarding your memory. Your motherboard also has to have sensors for reading mem temperature.
memtest does include tests for both ECC and non-ECC
I just remembered one last thing you could try. Get fedora for arm architecture or the rpm. You can run the stress package which will stress test your cpu and memory:
stress-1.0.4-4.fc13.armv5tel.rpm
If busybox has an rpm installer packaged with it, you might be able to deploy one of the arm rpms from the fedora distribution.
Write a file into an existing tmpfs like /tmp with dd as wazoox suggested, but limit its size to less then half of your free memory.
First, find out how much memory is available:
Then, write a file, in this case 4GB in total using 4000 blocks of 1MB:
This way you will avoid swapping and there is no need to mount anything.
I used u-boot's memtest, there are two tests (see u-boot/common/cmd_mem.c):
The first test is simple (write,check), the second test is activated by
#define CONFIG_SYS_ALT_MEMTEST 1
and add more tests,take care of passing a start offset (argv[1]) after the u-boot memory space, i.e
mtest 0x200000
.