X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=formal-model%2Furcu%2FMakefile;h=8af320d0de8354a2409150206231c0e348178c00;hp=7802c7f524b27c55fe00062607174003be3bd31b;hb=c4aed19a0ef9f02e474cee682bd261dfaa56a495;hpb=2ba2a48d02164a7f51fbd1686173080240579002 diff --git a/formal-model/urcu/Makefile b/formal-model/urcu/Makefile index 7802c7f..8af320d 100644 --- a/formal-model/urcu/Makefile +++ b/formal-model/urcu/Makefile @@ -17,16 +17,27 @@ # Authors: Mathieu Desnoyers #CFLAGS=-DSAFETY +#for multi-core verif, 15.5GB shared mem, use files if full +#CFLAGS=-DHASH64 -DMEMLIM=15500 -DNCORE=2 +#CFLAGS=-DHASH64 -DCOLLAPSE -DMA=88 -DMEMLIM=15500 -DNCORE=8 + +#liveness +#CFLAGS=-DHASH64 -DCOLLAPSE -DMA=88 CFLAGS=-DHASH64 SPINFILE=urcu.spin default: make urcu_free | tee urcu_free.log + #nested useless with signal test. + #make urcu_free_nested | tee urcu_free_nested.log make urcu_free_no_rmb | tee urcu_free_no_rmb.log make urcu_free_no_wmb | tee urcu_free_no_wmb.log make urcu_free_no_mb | tee urcu_free_no_mb.log make urcu_free_single_flip | tee urcu_free_single_flip.log + make urcu_progress_writer | tee urcu_progress_writer.log + make urcu_progress_reader | tee urcu_progress_reader.log + make urcu_progress_writer_error | tee urcu_progress_writer_error.log make asserts | tee asserts.log make summary @@ -36,15 +47,15 @@ default: summary: @echo @echo "Verification summary" - @grep error *.log + @grep errors: *.log asserts: clean cat DEFINES > .input.spin cat ${SPINFILE} >> .input.spin rm -f .input.spin.trail spin -a -X .input.spin - gcc -w ${CFLAGS} -DSAFETY -o pan pan.c - ./pan -v -c1 -X -m10000 -w19 + gcc -O2 -w ${CFLAGS} -DSAFETY -o pan pan.c + ./pan -v -c1 -X -m10000000 -w20 cp .input.spin $@.spin.input -cp .input.spin.trail $@.spin.input.trail @@ -52,6 +63,13 @@ urcu_free: clean urcu_free_ltl run cp .input.spin $@.spin.input -cp .input.spin.trail $@.spin.input.trail +urcu_free_nested: clean urcu_free_ltl urcu_free_nested_define run + cp .input.spin $@.spin.input + -cp .input.spin.trail $@.spin.input.trail + +urcu_free_nested_define: + cp urcu_free_nested.define .input.define + urcu_free_no_rmb: clean urcu_free_ltl urcu_free_no_rmb_define run cp .input.spin $@.spin.input -cp .input.spin.trail $@.spin.input.trail @@ -82,19 +100,67 @@ urcu_free_single_flip_define: urcu_free_ltl: touch .input.define - cat DEFINES > pan.ltl cat .input.define >> pan.ltl + cat DEFINES >> pan.ltl spin -f "!(`cat urcu_free.ltl | grep -v ^//`)" >> pan.ltl +# Progress checks + +urcu_progress_writer: clean urcu_progress_writer_ltl \ + urcu_progress_writer_define run_weak_fair + cp .input.spin $@.spin.input + -cp .input.spin.trail $@.spin.input.trail + +urcu_progress_writer_define: + cp urcu_progress_writer.define .input.define + +urcu_progress_writer_ltl: + touch .input.define + cat .input.define > pan.ltl + cat DEFINES >> pan.ltl + spin -f "!(`cat urcu_progress.ltl | grep -v ^//`)" >> pan.ltl + +urcu_progress_reader: clean urcu_progress_reader_ltl \ + urcu_progress_reader_define run_weak_fair + cp .input.spin $@.spin.input + -cp .input.spin.trail $@.spin.input.trail + +urcu_progress_reader_define: + cp urcu_progress_reader.define .input.define + +urcu_progress_reader_ltl: + touch .input.define + cat .input.define > pan.ltl + cat DEFINES >> pan.ltl + spin -f "!(`cat urcu_progress.ltl | grep -v ^//`)" >> pan.ltl + +urcu_progress_writer_error: clean urcu_progress_writer_error_ltl \ + urcu_progress_writer_error_define run_weak_fair + cp .input.spin $@.spin.input + -cp .input.spin.trail $@.spin.input.trail + +urcu_progress_writer_error_define: + cp urcu_progress_writer_error.define .input.define + +urcu_progress_writer_error_ltl: + touch .input.define + cat .input.define > pan.ltl + cat DEFINES >> pan.ltl + spin -f "!(`cat urcu_progress.ltl | grep -v ^//`)" >> pan.ltl + + +run_weak_fair: pan + ./pan -a -f -v -c1 -X -m10000000 -w20 + run: pan - ./pan -a -v -c1 -X -m10000 -w19 + ./pan -a -v -c1 -X -m10000000 -w20 pan: pan.c - gcc -w ${CFLAGS} -o pan pan.c + gcc -O2 -w ${CFLAGS} -o pan pan.c pan.c: pan.ltl ${SPINFILE} - cat DEFINES > .input.spin - cat .input.define >> .input.spin + cat .input.define > .input.spin + cat DEFINES >> .input.spin cat ${SPINFILE} >> .input.spin rm -f .input.spin.trail spin -a -X -N pan.ltl .input.spin