LKML Archive on
 help / color / Atom feed
From: Boqun Feng <>
Cc: Alan Stern <>,
	Andrea Parri <>,
	Will Deacon <>,
	Peter Zijlstra <>,
	Boqun Feng <>,
	Nicholas Piggin <>,
	David Howells <>,
	Jade Alglave <>,
	Luc Maranget <>,
	"Paul E. McKenney" <>,
	Akira Yokosawa <>,
	Daniel Lustig <>,
	Jonathan Corbet <>,
	Mauro Carvalho Chehab <>,
	"David S. Miller" <>,
	Rob Herring <>,
	Greg Kroah-Hartman <>,
	Jonathan Cameron <>,,
Subject: [RFC v2 0/4] Documentation/locking/atomic: Add litmus tests for atomic APIs
Date: Wed, 19 Feb 2020 14:26:23 +0800
Message-ID: <> (raw)

A recent discussion raises up the requirement for having test cases for
atomic APIs:

, and since we already have a way to generate a test module from a
litmus test with klitmus[1]. It makes sense that we add more litmus
tests for atomic APIs. And based on the previous discussion, I create a
new directory Documentation/atomic-tests and put these litmus tests

This patchset starts the work by adding the litmus tests which are
already used in atomic_t.txt, and also improve the atomic_t.txt to make
it consistent with the litmus tests.

Previous version:

Changes since v1:

*	Move the tests into Documentation/atomic-tests directory as a
	result of the discussion with Alan and Paul.

*	Word changing on litmus test names and other sentences in
	documents based on Alan's suggestion.

*	Add local variable declarations in 
	Atomic-RMW+mb__after_atomic-is-stronger-than-acquire to make
	klitmus work as per Andrea's suggestion.

Currently, I haven't heard anything from Luc on whether the
atomic_add_unless() works or not for the LKMM, but based on my test and
Andrea's previous test, I think it actually works. I will add the
corresponding changes to the LIMITATIONS part of LKMM document if I got
a comfirm from Luc. And my PR:

is still not merged. So this version is simply an RFC and comments and
suggesions are welcome!



Boqun Feng (4):
  Documentation/locking/atomic: Fix atomic-set litmus test
  Documentation/locking/atomic: Introduce atomic-tests directory
  Documentation/locking/atomic: Add a litmus test for atomic_set()
  Documentation/locking/atomic: Add a litmus test smp_mb__after_atomic()

 ...ter_atomic-is-stronger-than-acquire.litmus | 32 +++++++++++++++++++
 ...c-RMW-ops-are-atomic-WRT-atomic_set.litmus | 24 ++++++++++++++
 Documentation/atomic-tests/README             | 16 ++++++++++
 Documentation/atomic_t.txt                    | 24 +++++++-------
 MAINTAINERS                                   |  1 +
 5 files changed, 85 insertions(+), 12 deletions(-)
 create mode 100644 Documentation/atomic-tests/Atomic-RMW+mb__after_atomic-is-stronger-than-acquire.litmus
 create mode 100644 Documentation/atomic-tests/Atomic-RMW-ops-are-atomic-WRT-atomic_set.litmus
 create mode 100644 Documentation/atomic-tests/README


             reply index

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-19  6:26 Boqun Feng [this message]
2020-02-19  6:26 ` [RFC v2 1/4] Documentation/locking/atomic: Fix atomic-set litmus test Boqun Feng
2020-02-19  6:26 ` [RFC v2 2/4] Documentation/locking/atomic: Introduce atomic-tests directory Boqun Feng
2020-02-19  6:26 ` [RFC v2 3/4] Documentation/locking/atomic: Add a litmus test for atomic_set() Boqun Feng
2020-02-19 15:07   ` Alan Stern
2020-02-20  0:27     ` Boqun Feng
2020-02-19  6:26 ` [RFC v2 4/4] Documentation/locking/atomic: Add a litmus test smp_mb__after_atomic() Boqun Feng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

LKML Archive on

Archives are clonable:
	git clone --mirror lkml/git/0.git
	git clone --mirror lkml/git/1.git
	git clone --mirror lkml/git/2.git
	git clone --mirror lkml/git/3.git
	git clone --mirror lkml/git/4.git
	git clone --mirror lkml/git/5.git
	git clone --mirror lkml/git/6.git
	git clone --mirror lkml/git/7.git
	git clone --mirror lkml/git/8.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ \
	public-inbox-index lkml

Example config snippet for mirrors

Newsgroup available over NNTP:

AGPL code for this site: git clone