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)