1. 27 Oct, 2020 1 commit
  2. 16 Dec, 2015 2 commits
    • antirez's avatar
      Hopefully better memory test on crash. · a1c9c05e
      antirez authored
      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.
      a1c9c05e
    • antirez's avatar
      ac8f4a6a
  3. 09 Dec, 2014 1 commit
  4. 01 Dec, 2014 1 commit
  5. 08 Aug, 2014 1 commit
  6. 21 Jan, 2013 1 commit
  7. 29 Nov, 2012 1 commit
    • antirez's avatar
      On crash memory test rewrote so that it actaully works. · b1b602a9
      antirez authored
      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.
      b1b602a9
  8. 21 Nov, 2012 1 commit
  9. 08 Nov, 2012 1 commit
  10. 27 Apr, 2012 1 commit
  11. 12 Apr, 2012 1 commit
  12. 11 Apr, 2012 1 commit
  13. 19 Mar, 2012 1 commit
  14. 18 Mar, 2012 3 commits
  15. 16 Mar, 2012 2 commits