Skip to content

Commit

Permalink
specify valgrind version
Browse files Browse the repository at this point in the history
  • Loading branch information
dimstav23 committed Feb 2, 2022
1 parent 7815ede commit 9197f68
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 2 deletions.
4 changes: 2 additions & 2 deletions artifact_evaluation/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,10 +102,10 @@ The configurations for `pmemkv_bench` are in the `$(SafePM_root)/benchmarks/pmem
### RIPE benchmark
The source code for the RIPE benchmark and our port to PM are placed in `$(SafePM_root)/benchmarks/ripe/source` directory. The `ripe_tester.py` script acts as a driver for the RIPE executable. The attack parameters are defined in lists starting from [here](https://github.com/mstniy/safepm/blob/master/benchmarks/ripe/ripe_tester.py#L22). The RIPE benchmark variants and the parameters we provide to `ripe_tester.py` in our experiments can be found in the [`$(SafePM_root)/benchmarks/ripe/run-variants.sh`](https://github.com/mstniy/safepm/blob/0fb7c269b927abc65b51a992ec0c805fa4c08a62/benchmarks/ripe/run-variants.sh) script.

Note that for `valgrind`, we used [this version](https://github.com/pmem/valgrind.git).
Note that for `valgrind`, we used [this version](https://github.com/pmem/valgrind/tree/06f15d69237501852dd29883940e18da4179830a).

### Crash consistency benchmark
For our experiments on crash consistency we run `pmembench` with the `pmembench_map.cfg` and `pmembench_tx_safepm.cfg` configuration files, as described in `pmembench` section above. We execute the `change_pmembench_file_path.sh` script to lessen the operations in these configuration files to keep the runtime reasonable, because of the large performance overhead introduced by valgrind. Note that for `valgrind`, we used [this version](https://github.com/pmem/valgrind.git) to include `pmemcheck`. The executed `valgrind` commands inside the container and the output files of the experiment can be found in `$(SafePM_root)/benchmarks/crash_consistency/inner_run.sh`.
For our experiments on crash consistency we run `pmembench` with the `pmembench_map.cfg` and `pmembench_tx_safepm.cfg` configuration files, as described in `pmembench` section above. We execute the `change_pmembench_file_path.sh` script to lessen the operations in these configuration files to keep the runtime reasonable, because of the large performance overhead introduced by valgrind. Note that for `valgrind`, we used [this version](https://github.com/pmem/valgrind/tree/06f15d69237501852dd29883940e18da4179830a) to include `pmemcheck`. The executed `valgrind` commands inside the container and the output files of the experiment can be found in `$(SafePM_root)/benchmarks/crash_consistency/inner_run.sh`.

### Bug reproduction
To reproduce the bugs, we define in our PMDK fork's branch `pmasan-1.9.2` two distinct configuration files for `pmembench`, namely `pmembench_tx_bug.cfg` and `pmembench_map_bug.cfg`. These configuration files lead to the reported memory safety violations ([[1]](https://github.com/pmem/pmdk/issues/5333),[[2]](https://github.com/pmem/pmdk/issues/5334)) that we discovered using SafePM. Note that the configuration file `pmembench_map_bug.cfg` simply tries to benchmark the btree index, which triggers the off-by-one violation mentioned in section 6.7 in the paper. The second configuration file includes just the `obj_tx_realloc_sizes_abort` benchmark as defined in the upstream repository in the file `pmembench_tx.cfg`. In summary, both of these configuration files were taken from the upstream repository and modified to trigger the discovered bugs and anomalies as quickly as possible.
Expand Down
1 change: 1 addition & 0 deletions benchmarks/crash_consistency/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ RUN make -j7
WORKDIR /
RUN git clone https://github.com/pmem/valgrind.git
WORKDIR /valgrind
RUN git checkout 06f15d69237501852dd29883940e18da4179830a
RUN ./autogen.sh
RUN ./configure
RUN make -j7
Expand Down
1 change: 1 addition & 0 deletions benchmarks/ripe/Dockerfile_memcheck
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ RUN ldconfig
WORKDIR /
RUN git clone https://github.com/pmem/valgrind.git
WORKDIR /valgrind
RUN git checkout 06f15d69237501852dd29883940e18da4179830a
RUN ./autogen.sh
RUN ./configure
RUN make -j7
Expand Down

0 comments on commit 9197f68

Please sign in to comment.