linux/tools/verification/rv
Gabriele Monaco 1160ccaf77 tools/rv: Stop gracefully also on SIGTERM
Currently the userspace RV tool starts a monitor and waits for the user
to press Ctrl-C (SIGINT) to terminate and stop the monitor.
This doesn't account for a scenario where a user starts RV in background
and simply kills it (SIGTERM unless the user specifies differently).
E.g.:
 # rv mon wip &
 # kill %

Would terminate RV without stopping the monitor and next RV executions
won't start correctly.

Register the signal handler used for SIGINT also to SIGTERM.

Cc: Nam Cao <namcao@linutronix.de>
Cc: Tomas Glozar <tglozar@redhat.com>
Cc: Juri Lelli <jlelli@redhat.com>
Cc: Clark Williams <williams@redhat.com>
Cc: John Kacur <jkacur@redhat.com>
Link: https://lore.kernel.org/20250723161240.194860-3-gmonaco@redhat.com
Signed-off-by: Gabriele Monaco <gmonaco@redhat.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
2025-07-24 10:43:46 -04:00
..
include tools/rv: Allow rv list to filter for container 2025-03-24 17:27:40 -04:00
src tools/rv: Stop gracefully also on SIGTERM 2025-07-24 10:43:46 -04:00
.gitignore tools/verification: Use tools/build makefiles on rv 2024-03-20 05:39:06 +01:00
Build tools/verification: Use tools/build makefiles on rv 2024-03-20 05:39:06 +01:00
Makefile tools: Remove redundant quiet setup 2025-02-18 16:27:43 -03:00
Makefile.config tools/verification: Use pkg-config in lib_setup of Makefile.config 2024-07-17 13:14:51 -07:00
Makefile.rv tools/rv: Keep user LDFLAGS in build 2025-03-04 14:15:46 -05:00
README.txt

RV: Runtime Verification

Runtime Verification (RV) is a lightweight (yet rigorous) method that
complements classical exhaustive verification techniques (such as model
checking and theorem proving) with a more practical approach for
complex systems.

The rv tool is the interface for a collection of monitors that aim
analysing the logical and timing behavior of Linux.

Installing RV

RV depends on the following libraries and tools:

 - libtracefs
 - libtraceevent

It also depends on python3-docutils to compile man pages.

For development, we suggest the following steps for compiling rtla:

  $ git clone git://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git
  $ cd libtraceevent/
  $ make
  $ sudo make install
  $ cd ..
  $ git clone git://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git
  $ cd libtracefs/
  $ make
  $ sudo make install
  $ cd ..
  $ cd $rv_src
  $ make
  $ sudo make install

For further information, please see rv manpage and the kernel documentation:
  Runtime Verification:
    Documentation/trace/rv/runtime-verification.rst