summaryrefslogtreecommitdiff
path: root/src/memtest.c
Commit message (Collapse)AuthorAgeFilesLines
* Hopefully better memory test on crash.antirez2015-12-161-38/+86
| | | | | | | | | | | | | | | The old test, designed to do a transformation on the bits that was invertible, in order to avoid touching the original memory content, was not effective as it was redis-server --test-memory. The former often reported OK while the latter was able to spot the error. So the test was substituted with one that may perform better, however the new one must backup the memory tested, so it tests memory in small pieces. This limits the effectiveness because of the CPU caches. However some attempt is made in order to trash the CPU cache between the fill and the check stages, but not for the addressing test unfortunately. We'll see if this test will be able to find errors where the old failed.
* memtest.c now can be called as API in non interactive mode.antirez2015-12-161-43/+72
|
* Include stropts only if __sun is defined.antirez2014-12-091-0/+2
|
* Fix implicit declaration of ioctl on SolarisJan-Erik Rediger2014-12-011-0/+1
|
* memtest: Add missing free()Xian Li2014-08-081-0/+1
| | | | Closes #1614
* Fixed a bug in memtest progress bar, that had no actual effects.antirez2013-01-211-4/+2
| | | | This closes issue #859, thanks to @erbenmo.
* On crash memory test rewrote so that it actaully works.antirez2012-11-291-23/+19
| | | | | | | | | | | | | | | | | | | | | | | 1) We no longer test location by location, otherwise the CPU write cache completely makes our business useless. 2) We still need a memory test that operates in steps from the first to the last location in order to never hit the cache, but that is still able to retain the memory content. This was tested using a Linux box containing a bad memory module with a zingle bit error (always zero). So the final solution does has an error propagation step that is: 1) Invert bits at every location. 2) Swap adiacent locations. 3) Swap adiacent locations again. 4) Invert bits at every location. 5) Swap adiacent locations. 6) Swap adiacent locations again. Before and after these steps, and after step 4, a CRC64 checksum is computed. If the three CRC64 checksums don't match, a memory error was detected.
* Fast memory test on Redis crash.antirez2012-11-211-0/+31
|
* BSD license added to every C source and header file.antirez2012-11-081-0/+29
|
* memtest.c fixed to actually use v1 and v2 in memtest_fill_value().antirez2012-04-271-6/+6
|
* memtest.c: integer overflow fixed.antirez2012-04-121-1/+1
|
* Macros ULONG_ONEZERO / ULONG_ZEROONE were inverted in #ifdef to test 32/64 ↵antirez2012-04-111-3/+3
| | | | bit arch.
* Memory addressing test implemented.antirez2012-03-191-0/+32
|
* More memory tests implemented. Default number of iterations lowered to a ↵antirez2012-03-181-9/+66
| | | | more acceptable value of 50.
* Fixed typo.antirez2012-03-181-1/+1
|
* Number of iteration of --test-memory is now 300 (several minutes per ↵antirez2012-03-181-2/+4
| | | | gigabyte). Memtest86 and Memtester links are also displayed while running the test.
* Memory test function now less boring thanks to screen-wide progress bar.antirez2012-03-161-5/+48
|
* Hem... actual memtest.c file added.antirez2012-03-161-0/+91