]> www.infradead.org Git - users/jedix/linux-maple.git/commit
tools/memory-model: Make judgelitmus.sh handle hardware verifications
authorPaul E. McKenney <paulmck@kernel.org>
Tue, 19 Mar 2019 21:39:10 +0000 (14:39 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Mon, 10 May 2021 23:29:07 +0000 (16:29 -0700)
commitcf36264bf78bc29708fd585252cb1f59cf9deac0
treef3cd5693b6e271513e8ad0b1a6f17486c7325ebb
parent97c223dc6023a9cb9aa75d19e49ab1f9f80daa74
tools/memory-model: Make judgelitmus.sh handle hardware verifications

This commit makes the judgelitmus.sh script check the --hw argument
(AKA the LKMM_HW_MAP_FILE environment variable) and to adjust its
judgment for a run where a C-language litmus test has been translated to
assembly and the assembly version verified.  In this case, the assembly
verification output is checked against the C-language script's "Result:"
comment.  However, because hardware can be stronger than LKMM requires,
the judgelitmus.sh script forgives verification mismatches featuring
a "Sometimes" in the C-language script and an "Always" or "Never"
assembly-language verification.

Note that deadlock is not forgiven, however, this should not normally be
an issue given that C-language tests containing locking, RCU, or SRCU
cannot be translated to assembly.  However, this issue can crop up in
litmus tests that mimic deadlock by using the "filter" clause to ignore
all executions.  It can also crop up when certain herd arguments are
used to autofilter everything that does not match the "exists" clause
in cases where the "exists" clause cannot be satisfied.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
tools/memory-model/scripts/README
tools/memory-model/scripts/judgelitmus.sh