Move all source files into a subdirectory to try to keep things somewhat separated.

We may want to alter the directory structure further (e.g. separate out spectre_* -- the actual runnable demonstrations -- from instr and cache_sidechannel and so on), but this is a decent first step.

The name "demos" was picked arbitrarily -- I don't generally see "demonstrations" used as a word, and "examples" seems to imply to me that they are examples of use of an API, instead of examples of Spectre and so on.

Change-Id: Idd62f6ee9455eb5f80b3c454cbcf7201f49142e0
6 files changed
tree: 4380195a02aa40a37e4ddab2ee7dc6bc468ad9c7
  1. demos/
  2. .clang-format
  3. CONTRIBUTING.md
  4. LICENSE
  5. README.md
README.md

Sidechannel project

Sidechannel project aims to test synthetically the effectiveness of mitigations against sidechannel information leaks. To make that possible, we are going to build a test suite that robustly demonstrates information leaks across a breadth of techniques (Meltdown, Spectre variants, L1TF, MDS, and those yet to be discovered) and across a variety of isolation boundaries (same process, user/kernel, VM guest/host, network).

Build instructions

g++ spectre_v1.cc cache_sidechannel.cc instr.cc g++ spectre_v4.cc cache_sidechannel.cc instr.cc

Tested environments

We currently test our changes on: Linux - Intel Xeon Gold 6154 - {g++-6.4.0 - g++-8.0.1, clang-4.0 - clang-7} Linux - {Intel Core i7-6700, AMD Ryzen 5 PRO 2400G} - {g++-5.4.0 - g++-9.1.0, clang-6.0 - clang-8} Linux - Intel Core2 Quad - g++-8.1.1 Linux - Intel XeonE5-2670 - g++-4.8.4 Linux - Intel Core i7-3520M - {g++-8.3.0, clang-6.0 - clang-7, icc-19.0.4.243} Windows 10 on Google Cloud - Intel Haswell - {MSVC2019 x86 release build, MSVC2019 x64 release build} MacOS - Intel Core i7-8750H - clang Apple LLVM 10.0.1 Linux - ARMv8 Cavium ThunderX2 T99 - g++-7.3.0 Linux - PowerPC POWER9 Boston 2.2 - g++-8.3.0

Collaboration

See the contributing instructions.

Disclaimer

This is not an officially supported Google product.