Real-life C programs
On the one hand, this family contains the PostgreSQL
bug, the fix proposed by PostgreSQL developers and our own fix for it. It
should answer Yes in litmus terms, or Verification Failed in verification
terms, starting from RMO. The fix proposed by the developers is not enough,
hence should answer Yes in litmus terms, or Verification Failed in verification
terms, starting from RMO. Our fix should answer No in litmus terms and
Verification Successful in verification terms, regardless of the model.
On the other hand, this family contains our experiments with RCU and Apache.
It shows all the cycles (i.e. potential bugs) exhibited by RCU, and verifies
Apache.
Apache
Name |
SC |
CAV'11 |
TSO (all delay/cyc) |
TSO (1 delay/cyc) |
TSO (opt delay/cyc) |
Expected (TSO) |
PSO (all delay/cyc) |
PSO (1 delay/cyc) |
PSO (opt delay/cyc) |
Expected (PSO) |
RMO (all delay/cyc) |
RMO (1 delay/cyc) |
RMO (opt delay/cyc) |
Expected (RMO) |
Power (all delay/cyc) |
Power (1 delay/cyc) |
Power (opt delay/cyc) |
Expected (Power) |
Pgsql
Name |
SC |
TSO (all delay/cyc) |
TSO (1 delay/cyc) |
Expected (TSO) |
PSO (all delay/cyc) |
PSO (1 delay/cyc) |
Expected (PSO) |
RMO (all delay/cyc) |
RMO (1 delay/cyc) |
Expected (RMO) |
Power (all delay/cyc) |
Power (1 delay/cyc) |
Expected (Power) |
RCU
Name |
SC |
CAV'11 |
TSO (all delay/cyc) |
TSO (1 delay/cyc) |
TSO (opt delay/cyc) |
Expected (TSO) |
PSO (all delay/cyc) |
PSO (1 delay/cyc) |
PSO (opt delay/cyc) |
Expected (PSO) |
RMO (all delay/cyc) |
RMO (1 delay/cyc) |
RMO (opt delay/cyc) |
Expected (RMO) |
Power (all delay/cyc) |
Power (1 delay/cyc) |
Power (opt delay/cyc) |
Expected (Power) |