[Aug 6] Debian Stretch Minimal 64bit (0.7.8) / Ubuntu 18.04 Bionic LXDE Desktop Image (0.7.8) / Ubuntu 18.04 Bionic minimal 64bit / 32bit Image (0.7.8) / Ubuntu 18.04 Bionic Containers Image (0.7.8) / Stretch OpenMediaVault OS Image armhf / Stretch OpenMediaVault OS Image arm64 ( 0.7.8) - ROCK64 | [June 25] Stock Android 8.1 - ROCK64 | [June 19] Armbian (5.42) - ROCK64 | [June 19] Armbian (5.38) - PINE A64(+) / PINE A64-LTS / SOPINE

Project Inspiration | Get Started | IRC Logs | Forum Rules/Policy

Poll: is your RAM corrupt
memtester showing errors
memtester not finding any errors
[Show Results]
My RAM is corrupted
(03-14-2018, 05:44 PM)z4v4l Wrote:
Quote:I wonder why did the built in memtest not detect even a single one of these errors in my old device?
maybe because it's a bad memtest? Smile

Loooking at the sourcecode of it immediately shows the first obvious problem:


in line 52 the compiler optimization is totally alllowed to assume that if (*p == pattern) will always evaluate to true because it can prove it has just filled the same memory with pattern and nobody could have changed it in the mean time (compiler optimization can assume that variables and memory locations don't just change their values on their own, unless explicitly told otherwise), so the compiler can optimize away the entire code path below, it could even optimize away the first loop because it does not change the result of the computation, the entire function becomes a no-op with always the same result.

There should either be a compiler barrier like volatile asm("":::"memory") between the two loops to indicate that something could have changed the memory or the pointer should be declared volatile u64* p to indicate that this memory has the ability to change on its own. The latter would be cleaner and more portable.

(03-14-2018, 05:44 PM)z4v4l Wrote: I hope your new board is OK. Smile

The new board seems OK (at least 1.8G of 2G are ok, cannot yet test the remaining RAM because of a lack of testing tools). memtester shows no errors in the unallocated RAM anymore and file copy does not corupt files anymore. I guess this device is most likely ok.
(03-14-2018, 03:11 AM)prof7bit Wrote:
(03-13-2018, 08:09 PM)dkryder Wrote: i ran remtester @ 256M [...] on my 4GB board

You only tested a tiny fraction of your RAM, you should run it at the maximum number it will allow (typically total RAM minus 200MB or so), please run it again to test all the remaining RAM also.

absent any need based on faulty performance over 6 months there were not any reasons to allocate hours of time to a test. just as your errors showed up immediately most likely a bad memory chip on my board would have had similar results. in reality i should have not even bothered to test whst i did knowing i have had flawless performance for 6 months. i was merely curious to observe the speed of the test and was sorta disappointed in how slow it was. the fact that it output results to the screen was interesting. almost useless really, it just slowed the code down since there was no need to do that. just set code to output results file. i did not even read the man so maybe there is a setting to stop screen output, it should be the standard setting.
Mine is also fine:

[email protected]:~$ sudo memtester 3700M
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 3700MB (3879731200 bytes)
got  2733MB (2866061312 bytes), trying mlock ...locked.
Loop 1:
 Stuck Address       : ok
 Random Value        : ok
 Compare XOR         : ok
 Compare SUB         : ok
 Compare MUL         : ok
 Compare DIV         : ok
 Compare OR          : ok
 Compare AND         : ok
 Sequential Increment: ok
 Solid Bits          : ok
 Block Sequential    : ok
 Checkerboard        : ok
 Bit Spread          : ok
 Bit Flip            : ok
 Walking Ones        : ok
 Walking Zeroes      : ok
 8-bit Writes        : ok
 16-bit Writes       : ok

I also tested memtester on my new Rock64 4G and found errors. I noticed freeze and rsync issues (complains about bad checksums).

Then after reconnecting the PSU (DC connector), I do not have memtester issue anymore (10 loop with "memtester 3700M")

Maybe there is something wrong with the connector ?

I will use memtester a few days before using Rock64 (for TimeMachine purpose, with netatalk and USB3 harddrive)

Forum Jump:

Users browsing this thread: 1 Guest(s)