HyperDegrade Proof-of-Concept
Description
Summary
This document is for reproducing one of the research results from the paper "HyperDegrade: From GHz to MHz Effective CPU Frequencies", to appear at the 31st USENIX Security Symposium (USENIX Sec 2022).
It is for reproducing the results in Section 4 of the paper, including Tables 8-9.
The instructions assume the root directory of the archive you are reading now is as follows.
cd /path/to/hyperd/
Requirements on Ubuntu
sudo apt install git build-essential python3 linux-tools-common linux-tools-generic linux-tools-`uname -r`
Enable perf
echo "-1" | sudo tee /proc/sys/kernel/perf_event_paranoid
Building BEEBS benchmark suite
You only have to build the binaries once.
cd /path/to/hyperd/
git clone https://github.com/mageec/beebs.git
At the time of this writing, the most recent commit on the master
branch of the beebs
repo is: 049ded9f3aeb5591f553879d3a0376b8614e9422
Build all benchmarks as follows. (Linking statically.)
cd /path/to/hyperd/beebs/
patch -p1 < ../beebs.patch
./configure --build=x86_64
make MAKEINFO=true
Shared parts
There's a post-processing script to build as a shared library.
cd /path/to/hyperd/
./build_shared.sh
Build degrade tooling
cd /path/to/hyperd/
make clean
make
You should now have the degrade
binary.
Benchmark experiments
Running all experiments takes a significant amount of time (~50h), especially for Degrade and HyperDegrade strategies.
You can run a partial experiment that should take 2 hours to complete using: run_all.sh small
.
For full experiment run: run_all.sh
.
Benchmark results will appear in the bench_*.json
files.
Run experiment
You can also execute the experiments on demand.
For the baseline experiment with no degrading (NoDegrade):
cd /path/to/hyperd/
./degrade.sh A
To degrade from a different physical core (Degrade):
cd /path/to/hyperd/
./degrade.sh B
To degrade from the same physical core (HyperDegrade):
cd /path/to/hyperd/
./degrade.sh C
Parse results and compare
After completing the experiment we should have three json files, one for each degrade strategy. If no other json files are in path/
you can parse and see the results using:
cd /path/to/hyperd/
python3 compare.py path/bench*.json
Credits
Authors
- Alejandro Cabrera Aldaya (Tampere University, Tampere, Finland)
- Billy Bob Brumley (Tampere University, Tampere, Finland)
Funding
- This project has received funding from the European Research Council (ERC) under the European Union's Horizon 2020 research and innovation programme (grant agreement No 804476).
- Supported in part by CSIC's i-LINK+ 2019 "Advancing in cybersecurity technologies" (Ref. LINKA20216).
License
This work is released under the MIT License.
Files
README.md
Files
(23.4 kB)
Name | Size | Download all |
---|---|---|
md5:bcf6ce98c224ed463b1ccc219c37cef9
|
740 Bytes | Download |
md5:f4b9565e17c8299b624c5eaad4508c72
|
2.5 kB | Download |
md5:0f2366466220c20cef09eeb27d5471ae
|
3.6 kB | Download |
md5:bba5f05f505779fc28b9d0fe06cfa10a
|
2.1 kB | Download |
md5:afb144f951619a1dfabd994b3d8a9917
|
1.3 kB | Download |
md5:5007117ac9da347c0d5aee48186b76f8
|
1.4 kB | Download |
md5:1fb95c0e3e6eadf6ef6d80b4d4364768
|
6.3 kB | Download |
md5:d53bc0f0039705428e9f88e050422ee0
|
1.1 kB | Download |
md5:491674ee6a4664f674dde956c4ca7459
|
121 Bytes | Download |
md5:e28ba36f1ba154fffe29abec5c1b6a2b
|
2.9 kB | Preview Download |
md5:c5f433c21acc318713162b64821f6a40
|
1.4 kB | Download |
Additional details
Related works
- Is cited by
- Conference paper: arXiv:2101.01077 (arXiv)