Joel Fernandes (Google) | a591890 | 2020-03-22 21:57:34 -0400 | [diff] [blame] | 1 | ============ |
| 2 | LITMUS TESTS |
| 3 | ============ |
| 4 | |
Akira Yokosawa | cdaac9d | 2020-05-10 15:12:57 +0900 | [diff] [blame] | 5 | Each subdirectory contains litmus tests that are typical to describe the |
| 6 | semantics of respective kernel APIs. |
| 7 | For more information about how to "run" a litmus test or how to generate |
| 8 | a kernel test module based on a litmus test, please see |
| 9 | tools/memory-model/README. |
| 10 | |
| 11 | |
| 12 | atomic (/atomic derectory) |
| 13 | -------------------------- |
| 14 | |
| 15 | Atomic-RMW+mb__after_atomic-is-stronger-than-acquire.litmus |
| 16 | Test that an atomic RMW followed by a smp_mb__after_atomic() is |
| 17 | stronger than a normal acquire: both the read and write parts of |
| 18 | the RMW are ordered before the subsequential memory accesses. |
| 19 | |
| 20 | Atomic-RMW-ops-are-atomic-WRT-atomic_set.litmus |
| 21 | Test that atomic_set() cannot break the atomicity of atomic RMWs. |
Akira Yokosawa | 5ef0a07 | 2020-06-24 06:59:26 +0900 | [diff] [blame] | 22 | NOTE: Require herd7 7.56 or later which supports "(void)expr". |
Akira Yokosawa | cdaac9d | 2020-05-10 15:12:57 +0900 | [diff] [blame] | 23 | |
| 24 | |
Joel Fernandes (Google) | a591890 | 2020-03-22 21:57:34 -0400 | [diff] [blame] | 25 | RCU (/rcu directory) |
| 26 | -------------------- |
| 27 | |
Joel Fernandes (Google) | c425fb5 | 2020-05-11 22:06:46 -0400 | [diff] [blame] | 28 | MP+onceassign+derefonce.litmus (under tools/memory-model/litmus-tests/) |
| 29 | Demonstrates the use of rcu_assign_pointer() and rcu_dereference() to |
| 30 | ensure that an RCU reader will not see pre-initialization garbage. |
| 31 | |
Joel Fernandes (Google) | a591890 | 2020-03-22 21:57:34 -0400 | [diff] [blame] | 32 | RCU+sync+read.litmus |
| 33 | RCU+sync+free.litmus |
| 34 | Both the above litmus tests demonstrate the RCU grace period guarantee |
| 35 | that an RCU read-side critical section can never span a grace period. |