README 1.2 KB

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