| ============ | |
| LITMUS TESTS | |
| ============ | |
| Each subdirectory contains litmus tests that are typical to describe the | |
| semantics of respective kernel APIs. | |
| For more information about how to "run" a litmus test or how to generate | |
| a kernel test module based on a litmus test, please see | |
| tools/memory-model/README. | |
| atomic (/atomic derectory) | |
| -------------------------- | |
| Atomic-RMW+mb__after_atomic-is-stronger-than-acquire.litmus | |
| Test that an atomic RMW followed by a smp_mb__after_atomic() is | |
| stronger than a normal acquire: both the read and write parts of | |
| the RMW are ordered before the subsequential memory accesses. | |
| Atomic-RMW-ops-are-atomic-WRT-atomic_set.litmus | |
| Test that atomic_set() cannot break the atomicity of atomic RMWs. | |
| NOTE: Require herd7 7.56 or later which supports "(void)expr". | |
| RCU (/rcu directory) | |
| -------------------- | |
| MP+onceassign+derefonce.litmus (under tools/memory-model/litmus-tests/) | |
| Demonstrates the use of rcu_assign_pointer() and rcu_dereference() to | |
| ensure that an RCU reader will not see pre-initialization garbage. | |
| RCU+sync+read.litmus | |
| RCU+sync+free.litmus | |
| Both the above litmus tests demonstrate the RCU grace period guarantee | |
| that an RCU read-side critical section can never span a grace period. |