162306a36Sopenharmony_ci============
262306a36Sopenharmony_ciLITMUS TESTS
362306a36Sopenharmony_ci============
462306a36Sopenharmony_ci
562306a36Sopenharmony_ciEach subdirectory contains litmus tests that are typical to describe the
662306a36Sopenharmony_cisemantics of respective kernel APIs.
762306a36Sopenharmony_ciFor more information about how to "run" a litmus test or how to generate
862306a36Sopenharmony_cia kernel test module based on a litmus test, please see
962306a36Sopenharmony_citools/memory-model/README.
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciatomic (/atomic directory)
1362306a36Sopenharmony_ci--------------------------
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciAtomic-RMW+mb__after_atomic-is-stronger-than-acquire.litmus
1662306a36Sopenharmony_ci    Test that an atomic RMW followed by a smp_mb__after_atomic() is
1762306a36Sopenharmony_ci    stronger than a normal acquire: both the read and write parts of
1862306a36Sopenharmony_ci    the RMW are ordered before the subsequential memory accesses.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciAtomic-RMW-ops-are-atomic-WRT-atomic_set.litmus
2162306a36Sopenharmony_ci    Test that atomic_set() cannot break the atomicity of atomic RMWs.
2262306a36Sopenharmony_ci    NOTE: Require herd7 7.56 or later which supports "(void)expr".
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ciRCU (/rcu directory)
2662306a36Sopenharmony_ci--------------------
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ciMP+onceassign+derefonce.litmus (under tools/memory-model/litmus-tests/)
2962306a36Sopenharmony_ci    Demonstrates the use of rcu_assign_pointer() and rcu_dereference() to
3062306a36Sopenharmony_ci    ensure that an RCU reader will not see pre-initialization garbage.
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciRCU+sync+read.litmus
3362306a36Sopenharmony_ciRCU+sync+free.litmus
3462306a36Sopenharmony_ci    Both the above litmus tests demonstrate the RCU grace period guarantee
3562306a36Sopenharmony_ci    that an RCU read-side critical section can never span a grace period.
36