Skip to content

Latest commit

 

History

History
71 lines (56 loc) · 2.17 KB

README.md

File metadata and controls

71 lines (56 loc) · 2.17 KB

cpu_check

NOTE: BETA code, work-in-progress.

CPU torture test designed for SMP systems, attempting to find CPU hardware faults, focusing primarily on the x86_64 architecture.

The basic operation is to:

  • Run threads with affinity fixed to each logical CPU.
  • Generate a chunk of random data, either dictionary based text, or random binary data.
  • Run a number of checksum/hash algorithms over the data, store their results.
  • Compress the data via one of (zlib, ...).
  • Encrypt the data via AES-256-GCM.
  • Copy the data ('rep movsb' on x86, else memcpy).
  • Switch affinity to an alternate logical CPU.
  • Decrypt.
  • Decompress.
  • Run checksum/hash algorithms and compare with stored results.

Algorithms are chosen to exercise various hardware extensions. Eg. on x86_64, SSE4.2, AVX, etc.

Prerequisites:

Designed to run under Unix/Linux OS.

Building

sh$ git clone git@github.com:stixpjr/cpu_check.git
sh$ cd cpu_check
sh$ mkdir build
sh$ cd build
sh$ cmake ..
sh$ make

Options

Some options have been implememented that affect the build, which may be passed to cmake via, eg:

cmake -DCMAKE_BUILD_TYPE=(Debug|Release)

  • CMAKE_BUILD_TYPE=(Release|Debug)
  • USE_CLANG=(ON|OFF)
  • BUILD_STATIC=(ON|OFF)

TODO: