• Boqun Feng's avatar
    Documentation/litmus-tests/atomic: Add a test for atomic_set() · 4dcd4d36
    Boqun Feng authored
    We already use a litmus test in atomic_t.txt to describe the behavior of
    an atomic_set() with the an atomic RMW, so add it into atomic-tests
    directory to make it easily accessible for anyone who cares about the
    semantics of our atomic APIs.
    
    Besides currently the litmus test "atomic-set" in atomic_t.txt has a few
    things to be improved:
    
    1)	The CPU/Processor numbers "P1,P2" are not only inconsistent with
    	the rest of the document, which uses "CPU0" and "CPU1", but also
    	unacceptable by the herd tool, which requires processors start
    	at "P0".
    
    2)	The initialization block uses a "atomic_set()", which is OK, but
    	it's better to use ATOMIC_INIT() to make clear this is an
    	initialization.
    
    3)	The return value of atomic_add_unless() is discarded
    	inexplicitly, which is OK for C language, but it will be helpful
    	to the herd tool if we use a void cast to make the discard
    	explicit.
    
    4)	The name and the paragraph describing the test need to be more
    	accurate and aligned with our wording in LKMM.
    
    Therefore fix these in both atomic_t.txt and the new added litmus test.
    Acked-by: default avatarAndrea Parri <parri.andrea@gmail.com>
    Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
    Signed-off-by: default avatarBoqun Feng <boqun.feng@gmail.com>
    Reviewed-by: default avatarJoel Fernandes (Google) <joel@joelfernandes.org>
    Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
    4dcd4d36
Atomic-RMW-ops-are-atomic-WRT-atomic_set.litmus 285 Bytes