xref: /openbmc/linux/Documentation/litmus-tests/README (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1a591890cSJoel Fernandes (Google)============
2a591890cSJoel Fernandes (Google)LITMUS TESTS
3a591890cSJoel Fernandes (Google)============
4a591890cSJoel Fernandes (Google)
5cdaac9d6SAkira YokosawaEach subdirectory contains litmus tests that are typical to describe the
6cdaac9d6SAkira Yokosawasemantics of respective kernel APIs.
7cdaac9d6SAkira YokosawaFor more information about how to "run" a litmus test or how to generate
8cdaac9d6SAkira Yokosawaa kernel test module based on a litmus test, please see
9cdaac9d6SAkira Yokosawatools/memory-model/README.
10cdaac9d6SAkira Yokosawa
11cdaac9d6SAkira Yokosawa
12*57373671SRandy Dunlapatomic (/atomic directory)
13cdaac9d6SAkira Yokosawa--------------------------
14cdaac9d6SAkira Yokosawa
15cdaac9d6SAkira YokosawaAtomic-RMW+mb__after_atomic-is-stronger-than-acquire.litmus
16cdaac9d6SAkira Yokosawa    Test that an atomic RMW followed by a smp_mb__after_atomic() is
17cdaac9d6SAkira Yokosawa    stronger than a normal acquire: both the read and write parts of
18cdaac9d6SAkira Yokosawa    the RMW are ordered before the subsequential memory accesses.
19cdaac9d6SAkira Yokosawa
20cdaac9d6SAkira YokosawaAtomic-RMW-ops-are-atomic-WRT-atomic_set.litmus
21cdaac9d6SAkira Yokosawa    Test that atomic_set() cannot break the atomicity of atomic RMWs.
225ef0a07aSAkira Yokosawa    NOTE: Require herd7 7.56 or later which supports "(void)expr".
23cdaac9d6SAkira Yokosawa
24cdaac9d6SAkira Yokosawa
25a591890cSJoel Fernandes (Google)RCU (/rcu directory)
26a591890cSJoel Fernandes (Google)--------------------
27a591890cSJoel Fernandes (Google)
28c425fb5fSJoel Fernandes (Google)MP+onceassign+derefonce.litmus (under tools/memory-model/litmus-tests/)
29c425fb5fSJoel Fernandes (Google)    Demonstrates the use of rcu_assign_pointer() and rcu_dereference() to
30c425fb5fSJoel Fernandes (Google)    ensure that an RCU reader will not see pre-initialization garbage.
31c425fb5fSJoel Fernandes (Google)
32a591890cSJoel Fernandes (Google)RCU+sync+read.litmus
33a591890cSJoel Fernandes (Google)RCU+sync+free.litmus
34a591890cSJoel Fernandes (Google)    Both the above litmus tests demonstrate the RCU grace period guarantee
35a591890cSJoel Fernandes (Google)    that an RCU read-side critical section can never span a grace period.
36