~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/litmus-tests/README

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/litmus-tests/README (Version linux-6.12-rc7) and /Documentation/litmus-tests/README (Version linux-6.10.14)


  1 ============                                        1 ============
  2 LITMUS TESTS                                        2 LITMUS TESTS
  3 ============                                        3 ============
  4                                                     4 
  5 Each subdirectory contains litmus tests that a      5 Each subdirectory contains litmus tests that are typical to describe the
  6 semantics of respective kernel APIs.                6 semantics of respective kernel APIs.
  7 For more information about how to "run" a litm      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, p      8 a kernel test module based on a litmus test, please see
  9 tools/memory-model/README.                          9 tools/memory-model/README.
 10                                                    10 
 11                                                    11 
 12 atomic (/atomic directory)                         12 atomic (/atomic directory)
 13 --------------------------                         13 --------------------------
 14                                                    14 
 15 Atomic-RMW+mb__after_atomic-is-stronger-than-a     15 Atomic-RMW+mb__after_atomic-is-stronger-than-acquire.litmus
 16     Test that an atomic RMW followed by a smp_     16     Test that an atomic RMW followed by a smp_mb__after_atomic() is
 17     stronger than a normal acquire: both the r     17     stronger than a normal acquire: both the read and write parts of
 18     the RMW are ordered before the subsequenti     18     the RMW are ordered before the subsequential memory accesses.
 19                                                    19 
 20 Atomic-RMW-ops-are-atomic-WRT-atomic_set.litmu     20 Atomic-RMW-ops-are-atomic-WRT-atomic_set.litmus
 21     Test that atomic_set() cannot break the at     21     Test that atomic_set() cannot break the atomicity of atomic RMWs.
 22     NOTE: Require herd7 7.56 or later which su     22     NOTE: Require herd7 7.56 or later which supports "(void)expr".
 23                                                    23 
 24 cmpxchg-fail-ordered-1.litmus                      24 cmpxchg-fail-ordered-1.litmus
 25     Demonstrate that a failing cmpxchg() opera     25     Demonstrate that a failing cmpxchg() operation acts as a full barrier
 26     when followed by smp_mb__after_atomic().       26     when followed by smp_mb__after_atomic().
 27                                                    27 
 28 cmpxchg-fail-ordered-2.litmus                      28 cmpxchg-fail-ordered-2.litmus
 29     Demonstrate that a failing cmpxchg() opera     29     Demonstrate that a failing cmpxchg() operation acts as an acquire
 30     operation when followed by smp_mb__after_a     30     operation when followed by smp_mb__after_atomic().
 31                                                    31 
 32 cmpxchg-fail-unordered-1.litmus                    32 cmpxchg-fail-unordered-1.litmus
 33     Demonstrate that a failing cmpxchg() opera     33     Demonstrate that a failing cmpxchg() operation does not act as a
 34     full barrier.                                  34     full barrier.
 35                                                    35 
 36 cmpxchg-fail-unordered-2.litmus                    36 cmpxchg-fail-unordered-2.litmus
 37     Demonstrate that a failing cmpxchg() opera     37     Demonstrate that a failing cmpxchg() operation does not act as an
 38     acquire operation.                             38     acquire operation.
 39                                                    39 
 40                                                    40 
 41 locking (/locking directory)                       41 locking (/locking directory)
 42 ----------------------------                       42 ----------------------------
 43                                                    43 
 44 DCL-broken.litmus                                  44 DCL-broken.litmus
 45     Demonstrates that double-checked locking n     45     Demonstrates that double-checked locking needs more than just
 46     the obvious lock acquisitions and releases     46     the obvious lock acquisitions and releases.
 47                                                    47 
 48 DCL-fixed.litmus                                   48 DCL-fixed.litmus
 49     Demonstrates corrected double-checked lock     49     Demonstrates corrected double-checked locking that uses
 50     smp_store_release() and smp_load_acquire()     50     smp_store_release() and smp_load_acquire() in addition to the
 51     obvious lock acquisitions and releases.        51     obvious lock acquisitions and releases.
 52                                                    52 
 53 RM-broken.litmus                                   53 RM-broken.litmus
 54     Demonstrates problems with "roach motel" l     54     Demonstrates problems with "roach motel" locking, where code is
 55     freely moved into lock-based critical sect     55     freely moved into lock-based critical sections.  This example also
 56     shows how to use the "filter" clause to di     56     shows how to use the "filter" clause to discard executions that
 57     would be excluded by other code not modele     57     would be excluded by other code not modeled in the litmus test.
 58     Note also that this "roach motel" optimiza     58     Note also that this "roach motel" optimization is emulated by
 59     physically moving P1()'s two reads from x      59     physically moving P1()'s two reads from x under the lock.
 60                                                    60 
 61     What is a roach motel?  This is from an ol     61     What is a roach motel?  This is from an old advertisement for
 62     a cockroach trap, much later featured in o     62     a cockroach trap, much later featured in one of the "Men in
 63     Black" movies.  "The roaches check in.  Th     63     Black" movies.  "The roaches check in.  They don't check out."
 64                                                    64 
 65 RM-fixed.litmus                                    65 RM-fixed.litmus
 66     The counterpart to RM-broken.litmus, showi     66     The counterpart to RM-broken.litmus, showing P0()'s two loads from
 67     x safely outside of the critical section.      67     x safely outside of the critical section.
 68                                                    68 
 69                                                    69 
 70 RCU (/rcu directory)                               70 RCU (/rcu directory)
 71 --------------------                               71 --------------------
 72                                                    72 
 73 MP+onceassign+derefonce.litmus (under tools/me     73 MP+onceassign+derefonce.litmus (under tools/memory-model/litmus-tests/)
 74     Demonstrates the use of rcu_assign_pointer     74     Demonstrates the use of rcu_assign_pointer() and rcu_dereference() to
 75     ensure that an RCU reader will not see pre     75     ensure that an RCU reader will not see pre-initialization garbage.
 76                                                    76 
 77 RCU+sync+read.litmus                               77 RCU+sync+read.litmus
 78 RCU+sync+free.litmus                               78 RCU+sync+free.litmus
 79     Both the above litmus tests demonstrate th     79     Both the above litmus tests demonstrate the RCU grace period guarantee
 80     that an RCU read-side critical section can     80     that an RCU read-side critical section can never span a grace period.
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php