> It's not "arm devices that make your ram broken". Ask for replacement.
Nobody said that it was ARM's fault.
> memtest
The memtest kernel option is not available on ayufan's kernel images (see the other thread in the linux sub forum). I build one myself with this config enabled, currently testing.
Replacement device arrived today, not yet tested, still testing the effects of the kernel memtest with the broken device to see if this might either help diagnosing such problems or even eliminate its effects entirely when the defective RAM is blacklisted.
A kernel built with CONFIG_MEMTEST=y
and the word memtest at the kernel command line shows this at boot:
I'm not sure if these are errors or just progress log, my desktop which shows something similar when booting with the memtest option (Ubuntu and Debian have all their kernel built with CONFIG_MEMTEST by default) although it does not have any errors with memtest86.
It takes 5 minutes to boot with memtest but afterwards memtester still shows a ton of bad RAM and file copy still corrupts files.
We need a reliable tool to test all RAM, an equivalent of memtest86 and the kernel memtest does not seem to be effective at all, on my desktop it finds false positives and on this Rock64 it does not detect and blacklist even half of the bad memory.
Looking at the source of linux/mm/memtest.c it should have printed
pr_info(" %016llx bad mem addr %pa - %pa reserved\n",
and the output I saw in the dmesg is only progress messages. So this means kernel memtest took 5 minutes to find nothing! while memtester almost immediately spew out tons of errors.
I'm now testing the replacement device. My original was 1GB and the vendor sent me a replacement device with 2GB. Same output from kernel memtest (only progress log and otherwise nothing) and userspace memtester still running, no errors so far.
I wonder why did the built in memtest not detect even a single one of these errors in my old device?
Nobody said that it was ARM's fault.
> memtest
The memtest kernel option is not available on ayufan's kernel images (see the other thread in the linux sub forum). I build one myself with this config enabled, currently testing.
Replacement device arrived today, not yet tested, still testing the effects of the kernel memtest with the broken device to see if this might either help diagnosing such problems or even eliminate its effects entirely when the defective RAM is blacklisted.
A kernel built with CONFIG_MEMTEST=y
and the word memtest at the kernel command line shows this at boot:
I'm not sure if these are errors or just progress log, my desktop which shows something similar when booting with the memtest option (Ubuntu and Debian have all their kernel built with CONFIG_MEMTEST by default) although it does not have any errors with memtest86.
Code:
--($)-- dmesg
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 4.4.114-rockchip-ayufan-1 (bernd@rock64-build-env) (gcc version 7.2.0 (Ubuntu/Linaro 7.2.0-6ubuntu1) ) #2 SMP Wed Mar 14 17:32:54 UTC 2018
[ 0.000000] Boot CPU: AArch64 Processor [410fd034]
[ 0.000000] early_memtest: # of tests: 17
[ 0.000000] 0x0000000000200000 - 0x0000000002080000 pattern 4c494e5558726c7a
[ 0.000000] 0x00000000033b7000 - 0x00000000033b8000 pattern 4c494e5558726c7a
[ 0.000000] 0x00000000033b9000 - 0x000000003dc61000 pattern 4c494e5558726c7a
[ 0.000000] 0x000000003dc70080 - 0x000000003dc73000 pattern 4c494e5558726c7a
[ 0.000000] 0x000000003df016da - 0x000000003fff8000 pattern 4c494e5558726c7a
[ 0.000000] 0x000000003ffff000 - 0x0000000040000000 pattern 4c494e5558726c7a
[ 0.000000] 0x0000000000200000 - 0x0000000002080000 pattern eeeeeeeeeeeeeeee
[ 0.000000] 0x00000000033b7000 - 0x00000000033b8000 pattern eeeeeeeeeeeeeeee
[ 0.000000] 0x00000000033b9000 - 0x000000003dc61000 pattern eeeeeeeeeeeeeeee
[ 0.000000] 0x000000003dc70080 - 0x000000003dc73000 pattern eeeeeeeeeeeeeeee
[ 0.000000] 0x000000003df016da - 0x000000003fff8000 pattern eeeeeeeeeeeeeeee
[ 0.000000] 0x000000003ffff000 - 0x0000000040000000 pattern eeeeeeeeeeeeeeee
[ 0.000000] 0x0000000000200000 - 0x0000000002080000 pattern dddddddddddddddd
[ 0.000000] 0x00000000033b7000 - 0x00000000033b8000 pattern dddddddddddddddd
[ 0.000000] 0x00000000033b9000 - 0x000000003dc61000 pattern dddddddddddddddd
[ 0.000000] 0x000000003dc70080 - 0x000000003dc73000 pattern dddddddddddddddd
[ 0.000000] 0x000000003df016da - 0x000000003fff8000 pattern dddddddddddddddd
[ 0.000000] 0x000000003ffff000 - 0x0000000040000000 pattern dddddddddddddddd
[ 0.000000] 0x0000000000200000 - 0x0000000002080000 pattern bbbbbbbbbbbbbbbb
[ 0.000000] 0x00000000033b7000 - 0x00000000033b8000 pattern bbbbbbbbbbbbbbbb
[ 0.000000] 0x00000000033b9000 - 0x000000003dc61000 pattern bbbbbbbbbbbbbbbb
[ 0.000000] 0x000000003dc70080 - 0x000000003dc73000 pattern bbbbbbbbbbbbbbbb
[ 0.000000] 0x000000003df016da - 0x000000003fff8000 pattern bbbbbbbbbbbbbbbb
[ 0.000000] 0x000000003ffff000 - 0x0000000040000000 pattern bbbbbbbbbbbbbbbb
[ 0.000000] 0x0000000000200000 - 0x0000000002080000 pattern 7777777777777777
[ 0.000000] 0x00000000033b7000 - 0x00000000033b8000 pattern 7777777777777777
[ 0.000000] 0x00000000033b9000 - 0x000000003dc61000 pattern 7777777777777777
[ 0.000000] 0x000000003dc70080 - 0x000000003dc73000 pattern 7777777777777777
[ 0.000000] 0x000000003df016da - 0x000000003fff8000 pattern 7777777777777777
[ 0.000000] 0x000000003ffff000 - 0x0000000040000000 pattern 7777777777777777
[ 0.000000] 0x0000000000200000 - 0x0000000002080000 pattern cccccccccccccccc
[ 0.000000] 0x00000000033b7000 - 0x00000000033b8000 pattern cccccccccccccccc
[ 0.000000] 0x00000000033b9000 - 0x000000003dc61000 pattern cccccccccccccccc
[ 0.000000] 0x000000003dc70080 - 0x000000003dc73000 pattern cccccccccccccccc
[ 0.000000] 0x000000003df016da - 0x000000003fff8000 pattern cccccccccccccccc
[ 0.000000] 0x000000003ffff000 - 0x0000000040000000 pattern cccccccccccccccc
[ 0.000000] 0x0000000000200000 - 0x0000000002080000 pattern 9999999999999999
[ 0.000000] 0x00000000033b7000 - 0x00000000033b8000 pattern 9999999999999999
[ 0.000000] 0x00000000033b9000 - 0x000000003dc61000 pattern 9999999999999999
[ 0.000000] 0x000000003dc70080 - 0x000000003dc73000 pattern 9999999999999999
[ 0.000000] 0x000000003df016da - 0x000000003fff8000 pattern 9999999999999999
[ 0.000000] 0x000000003ffff000 - 0x0000000040000000 pattern 9999999999999999
[ 0.000000] 0x0000000000200000 - 0x0000000002080000 pattern 6666666666666666
[ 0.000000] 0x00000000033b7000 - 0x00000000033b8000 pattern 6666666666666666
[ 0.000000] 0x00000000033b9000 - 0x000000003dc61000 pattern 6666666666666666
[ 0.000000] 0x000000003dc70080 - 0x000000003dc73000 pattern 6666666666666666
[ 0.000000] 0x000000003df016da - 0x000000003fff8000 pattern 6666666666666666
[ 0.000000] 0x000000003ffff000 - 0x0000000040000000 pattern 6666666666666666
[ 0.000000] 0x0000000000200000 - 0x0000000002080000 pattern 3333333333333333
[ 0.000000] 0x00000000033b7000 - 0x00000000033b8000 pattern 3333333333333333
[ 0.000000] 0x00000000033b9000 - 0x000000003dc61000 pattern 3333333333333333
[ 0.000000] 0x000000003dc70080 - 0x000000003dc73000 pattern 3333333333333333
[ 0.000000] 0x000000003df016da - 0x000000003fff8000 pattern 3333333333333333
[ 0.000000] 0x000000003ffff000 - 0x0000000040000000 pattern 3333333333333333
[ 0.000000] 0x0000000000200000 - 0x0000000002080000 pattern 8888888888888888
[ 0.000000] 0x00000000033b7000 - 0x00000000033b8000 pattern 8888888888888888
[ 0.000000] 0x00000000033b9000 - 0x000000003dc61000 pattern 8888888888888888
[ 0.000000] 0x000000003dc70080 - 0x000000003dc73000 pattern 8888888888888888
[ 0.000000] 0x000000003df016da - 0x000000003fff8000 pattern 8888888888888888
[ 0.000000] 0x000000003ffff000 - 0x0000000040000000 pattern 8888888888888888
[ 0.000000] 0x0000000000200000 - 0x0000000002080000 pattern 4444444444444444
[ 0.000000] 0x00000000033b7000 - 0x00000000033b8000 pattern 4444444444444444
[ 0.000000] 0x00000000033b9000 - 0x000000003dc61000 pattern 4444444444444444
[ 0.000000] 0x000000003dc70080 - 0x000000003dc73000 pattern 4444444444444444
[ 0.000000] 0x000000003df016da - 0x000000003fff8000 pattern 4444444444444444
[ 0.000000] 0x000000003ffff000 - 0x0000000040000000 pattern 4444444444444444
[ 0.000000] 0x0000000000200000 - 0x0000000002080000 pattern 2222222222222222
[ 0.000000] 0x00000000033b7000 - 0x00000000033b8000 pattern 2222222222222222
[ 0.000000] 0x00000000033b9000 - 0x000000003dc61000 pattern 2222222222222222
[ 0.000000] 0x000000003dc70080 - 0x000000003dc73000 pattern 2222222222222222
[ 0.000000] 0x000000003df016da - 0x000000003fff8000 pattern 2222222222222222
[ 0.000000] 0x000000003ffff000 - 0x0000000040000000 pattern 2222222222222222
[ 0.000000] 0x0000000000200000 - 0x0000000002080000 pattern 1111111111111111
[ 0.000000] 0x00000000033b7000 - 0x00000000033b8000 pattern 1111111111111111
[ 0.000000] 0x00000000033b9000 - 0x000000003dc61000 pattern 1111111111111111
[ 0.000000] 0x000000003dc70080 - 0x000000003dc73000 pattern 1111111111111111
[ 0.000000] 0x000000003df016da - 0x000000003fff8000 pattern 1111111111111111
[ 0.000000] 0x000000003ffff000 - 0x0000000040000000 pattern 1111111111111111
[ 0.000000] 0x0000000000200000 - 0x0000000002080000 pattern aaaaaaaaaaaaaaaa
[ 0.000000] 0x00000000033b7000 - 0x00000000033b8000 pattern aaaaaaaaaaaaaaaa
[ 0.000000] 0x00000000033b9000 - 0x000000003dc61000 pattern aaaaaaaaaaaaaaaa
[ 0.000000] 0x000000003dc70080 - 0x000000003dc73000 pattern aaaaaaaaaaaaaaaa
[ 0.000000] 0x000000003df016da - 0x000000003fff8000 pattern aaaaaaaaaaaaaaaa
[ 0.000000] 0x000000003ffff000 - 0x0000000040000000 pattern aaaaaaaaaaaaaaaa
[ 0.000000] 0x0000000000200000 - 0x0000000002080000 pattern 5555555555555555
[ 0.000000] 0x00000000033b7000 - 0x00000000033b8000 pattern 5555555555555555
[ 0.000000] 0x00000000033b9000 - 0x000000003dc61000 pattern 5555555555555555
[ 0.000000] 0x000000003dc70080 - 0x000000003dc73000 pattern 5555555555555555
[ 0.000000] 0x000000003df016da - 0x000000003fff8000 pattern 5555555555555555
[ 0.000000] 0x000000003ffff000 - 0x0000000040000000 pattern 5555555555555555
[ 0.000000] 0x0000000000200000 - 0x0000000002080000 pattern ffffffffffffffff
[ 0.000000] 0x00000000033b7000 - 0x00000000033b8000 pattern ffffffffffffffff
[ 0.000000] 0x00000000033b9000 - 0x000000003dc61000 pattern ffffffffffffffff
[ 0.000000] 0x000000003dc70080 - 0x000000003dc73000 pattern ffffffffffffffff
[ 0.000000] 0x000000003df016da - 0x000000003fff8000 pattern ffffffffffffffff
[ 0.000000] 0x000000003ffff000 - 0x0000000040000000 pattern ffffffffffffffff
[ 0.000000] 0x0000000000200000 - 0x0000000002080000 pattern 0000000000000000
[ 0.000000] 0x00000000033b7000 - 0x00000000033b8000 pattern 0000000000000000
[ 0.000000] 0x00000000033b9000 - 0x000000003dc61000 pattern 0000000000000000
[ 0.000000] 0x000000003dc70080 - 0x000000003dc73000 pattern 0000000000000000
[ 0.000000] 0x000000003df016da - 0x000000003fff8000 pattern 0000000000000000
[ 0.000000] 0x000000003ffff000 - 0x0000000040000000 pattern 0000000000000000
It takes 5 minutes to boot with memtest but afterwards memtester still shows a ton of bad RAM and file copy still corrupts files.
We need a reliable tool to test all RAM, an equivalent of memtest86 and the kernel memtest does not seem to be effective at all, on my desktop it finds false positives and on this Rock64 it does not detect and blacklist even half of the bad memory.
Looking at the source of linux/mm/memtest.c it should have printed
pr_info(" %016llx bad mem addr %pa - %pa reserved\n",
and the output I saw in the dmesg is only progress messages. So this means kernel memtest took 5 minutes to find nothing! while memtester almost immediately spew out tons of errors.
I'm now testing the replacement device. My original was 1GB and the vendor sent me a replacement device with 2GB. Same output from kernel memtest (only progress log and otherwise nothing) and userspace memtester still running, no errors so far.
I wonder why did the built in memtest not detect even a single one of these errors in my old device?