Commit 418b2977 authored by Lance Roy's avatar Lance Roy Committed by Paul E. McKenney
Browse files

rcutorture: Add CBMC-based formal verification for SRCU



This commit creates a formal/srcu-cbmc directory containing scripts that
pull SRCU in from the source code, filter it to remove things that CBMC
cannot handle, and run a series of verifications on it.  This has a number
of shortcomings:

1.	It does not yet hook into the upper-level self-test Makefiles.
2.	It tests only a single scenario, store buffering.
3.	There is no gcc-based syntax-error prefiltering.

Nevertheless, it does fully verify a piece of SRCU under a moderately
weak memory model (PSO).

Signed-off-by: default avatarLance Roy <ldr709@gmail.com>
Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
parent d85b62f1
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
srcu.c
+16 −0
Original line number Diff line number Diff line
all: srcu.c store_buffering

LINUX_SOURCE = ../../../../../..

modified_srcu_input = $(LINUX_SOURCE)/include/linux/srcu.h \
		      $(LINUX_SOURCE)/kernel/rcu/srcu.c

modified_srcu_output = include/linux/srcu.h srcu.c

include/linux/srcu.h: srcu.c

srcu.c: modify_srcu.awk Makefile $(modified_srcu_input)
	awk -f modify_srcu.awk $(modified_srcu_input) $(modified_srcu_output)

store_buffering:
	@cd tests/store_buffering; make
+0 −0

Empty file added.

+0 −0

Empty file added.

+0 −0

Empty file added.

Loading