Follow the instruction of PMDK Side Channel to build PMDK libpmem-obj library and configure Optane DIMMs.
$ sudo -i su
$ cd $PROJ_ROOT/NVLeak/nvleak/user/side_channel/map_cli
# Run experiments for Fig 16a
$ ./run.sh # Select "2) ./runners/2_read_only.sh"
# Run experiments for Fig 16b
$ ./run.sh # Select "6) ./runners/6_read_only_secure.sh"
$ cd $PROJ_ROOT/NVLeak/nvleak/user/side_channel/mitigation_benchmark
$ bash setup.sh
$ bash run_all.sh
On your Dev Server, fetch the results and generate plots.
$ cd NVLeak/data
$ bash copy.sh # Or manually copy the results from NVRAM Server to Dev Server
# Parse results
$ cd NVLeak/data/mitigation_benchmark/results
$ python3 ../../../scripts/mitigation/parse.py .
$ cat performance.csv # check the output file
$ cd NVLeak/report/data/reproduce/fig16/
$ vim fetch.sh
$ bash fetch.sh
$ cd NVLeak/report/
$ sed -i 's/\#reproduce\/fig16/reproduce\/fig16/g' figure/plots.csv
$ vim content/figure/16.tex # uncomment the 'reproduce' sub figures
$ make # generate the report 'paper.pdf'