Skip to content
/ dolma Public
forked from efeslab/dolma

License

BSD-3-Clause, Unknown licenses found

Licenses found

BSD-3-Clause
LICENSE
Unknown
COPYING
Notifications You must be signed in to change notification settings

teotro/dolma

 
 

Repository files navigation

Source code for DOLMA: Securing Speculation with the Principle of Transient Non-Observability.
When using code from this repository, please be sure to cite our USENIX Security paper,
available at https://www.kevinloughlin.org/dolma.pdf.

Most of the changes for DOLMA can be found in `src/cpu/o3/`. At a high level,
they include adding the infrastructure for tracking speculative status
and enforcing restricted execution for unsafe micro-ops. A good place to
start is `src/cpu/base_dyn_inst.hh`, as this file contains the additional
status flags for instructions added by DOLMA. Note that a few changes are
also made in `src/mem/` in order prevent unsafe memory ops from modifying
the cache hierarchy. All in all, `git grep -il dolma` should reveal
most/all of the files we changed.

The attacks we used to test DOLMA's security, along with usage instructions,
can be found in `attacks`.

------------------
This is the gem5 simulator.
------------------

The main website can be found at https://www.gem5.org

A good starting point is https://www.gem5.org/Introduction, and for
more information about building the simulator and getting started
please see https://www.gem5.org/Documentation and
https://www.gem5.org/Tutorials.

To build gem5, you will need the following software: g++ or clang,
Python (gem5 links in the Python interpreter), SCons, SWIG, zlib, m4,
and lastly protobuf if you want trace capture and playback
support. Please see https://www.gem5.org/Dependencies for more details
concerning the minimum versions of the aforementioned tools.

Once you have all dependencies resolved, type 'scons
build/<ARCH>/gem5.opt' where ARCH is one of ALPHA, ARM, NULL, MIPS,
POWER, SPARC, or X86. This will build an optimized version of the gem5
binary (gem5.opt) for the the specified architecture. See
https://www.gem5.org/Build_System for more details and options.

With the simulator built, have a look at
https://www.gem5.org/Running_gem5 for more information on how to use
gem5.

The basic source release includes these subdirectories:
   - configs: example simulation configuration scripts
   - ext: less-common external packages needed to build gem5
   - src: source code of the gem5 simulator
   - system: source for some optional system software for simulated systems
   - tests: regression tests
   - util: useful utility programs and files

To run full-system simulations, you will need compiled system firmware
(console and PALcode for Alpha), kernel binaries and one or more disk
images. Please see the gem5 download page for these items at
https://www.gem5.org/Download

If you have questions, please send mail to [email protected]

Enjoy using gem5 and please share your modifications and extensions.

About

No description, website, or topics provided.

Resources

License

BSD-3-Clause, Unknown licenses found

Licenses found

BSD-3-Clause
LICENSE
Unknown
COPYING

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 79.3%
  • Python 13.8%
  • C 3.7%
  • Assembly 1.6%
  • Hack 0.5%
  • HTML 0.3%
  • Other 0.8%