Commit 878a01f9 authored by Jialin Li's avatar Jialin Li
Browse files

update README

parent 4e7a8a52
......@@ -15,33 +15,46 @@ Code structure:
+ `netsim_common/`: helper library for network simulations
+ `libnicbm/`: helper library for behavioral nic models
# Dependencies
- Tested to work on Ubuntu 18.04
- Verilator (branch v4.010)
- unzip
- libpcap-dev
- libglib2.0-dev
- python (>= 3.7)
- libgoogle-perftools-dev
- libboost-iostreams-dev
- scons
- ninja-build
- libpixman-1-dev
- qemu
# Building
- `unzip`, `libpcap-dev`
- External dependencies for qemu: `libglib2.0-dev libpixman-1-dev`
- External dependencies for gem5: `scons`, `python-dev`, `libgoogle-perftools-dev`
Then build everything with:
First, initialize all submodules:
```
git submodule init
git submodule update
```
Then, build the project, all submodules, and experiment images:
```
make -j`nproc` all external build-images
```
Note: building system images requires KVM support (and KVM permissions).
# Running
We use the scripts in the `experiments/` directory. `make` in that directory
should run all the experiments for the paper. This will take a while (>>1h).
While simulations can be run in parallel, some of them use a lot of core, and we
currently don't have jobserver integration, so blindly running make with a high
`-j` parameter here is a bad idea. You can run individual experiment (see
`experiments/*` for their names) with `make out/$NAME/1/ready`, which will
result in log files in `out/$NAME/1/`. Start with one of the qemu simulations.
To run the experiments multiple times which restore from the common check point,
the script should be added to EXP_CP in experiments/makefile. There should be a
pair script has "-mck" as suffix to that experiment script to make the check point.
(eg. gem5-timing-corundum-verilator-pair-cp.sh AND gem5-timing-corundum-verilator-pair-cp-mck.sh)
The script doesn't need to restore from the common check point, should be added to
EXP_NCP in experiments/makefile
A list of available simulations is listed in `experiments/pyexps`.
To run one of the simulations:
```
cd experiments
python3 run.py pyexps/EXP
```
where `EXP` is the name of the simulation file.
## Running Qemu
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment