A recent discussion raises up the requirement for having test cases for
atomic APIs:
https://lore.kernel.org/lkml/[email protected]/
, 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
here.
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:
v1: https://lore.kernel.org/linux-doc/[email protected]/
v2: https://lore.kernel.org/lkml/[email protected]/
Changes since v2:
* Change from "RFC" to "PATCH".
* Wording improvement in atomic_t.txt as per Alan's suggestion.
* Add a new patch describing the usage of atomic_add_unless() is
not limited anymore for LKMM litmus tests.
My PR on supporting "(void) expr;" statement has been merged by Luc
(Thank you, Luc). So all the litmus tests in this patchset can be
handled by the herdtools compiled from latest master branch of the
source code.
Comments and suggestions are welcome!
Regards,
Boqun
[1]: http://diy.inria.fr/doc/litmus.html#klitmus
Boqun Feng (5):
tools/memory-model: Add an exception for limitations on _unless()
family
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 +
tools/memory-model/README | 10 ++++--
6 files changed, 92 insertions(+), 15 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
--
2.25.0
On Thu, Feb 27, 2020 at 08:40:44AM +0800, Boqun Feng wrote:
> A recent discussion raises up the requirement for having test cases for
> atomic APIs:
>
> https://lore.kernel.org/lkml/[email protected]/
>
> , 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
> here.
>
> 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:
> v1: https://lore.kernel.org/linux-doc/[email protected]/
> v2: https://lore.kernel.org/lkml/[email protected]/
>
> Changes since v2:
>
> * Change from "RFC" to "PATCH".
>
> * Wording improvement in atomic_t.txt as per Alan's suggestion.
>
> * Add a new patch describing the usage of atomic_add_unless() is
> not limited anymore for LKMM litmus tests.
>
> My PR on supporting "(void) expr;" statement has been merged by Luc
> (Thank you, Luc). So all the litmus tests in this patchset can be
> handled by the herdtools compiled from latest master branch of the
> source code.
>
> Comments and suggestions are welcome!
>
> Regards,
> Boqun
Queued for further review, thank you, Boqun!
Thanx, Paul
> [1]: http://diy.inria.fr/doc/litmus.html#klitmus
>
> Boqun Feng (5):
> tools/memory-model: Add an exception for limitations on _unless()
> family
> 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 +
> tools/memory-model/README | 10 ++++--
> 6 files changed, 92 insertions(+), 15 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
>
> --
> 2.25.0
>
On Thu, Feb 27, 2020 at 08:40:44AM +0800, Boqun Feng wrote:
> A recent discussion raises up the requirement for having test cases for
> atomic APIs:
>
> https://lore.kernel.org/lkml/[email protected]/
>
> , 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
> here.
>
> 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:
> v1: https://lore.kernel.org/linux-doc/[email protected]/
> v2: https://lore.kernel.org/lkml/[email protected]/
>
> Changes since v2:
>
> * Change from "RFC" to "PATCH".
>
> * Wording improvement in atomic_t.txt as per Alan's suggestion.
>
> * Add a new patch describing the usage of atomic_add_unless() is
> not limited anymore for LKMM litmus tests.
>
> My PR on supporting "(void) expr;" statement has been merged by Luc
> (Thank you, Luc). So all the litmus tests in this patchset can be
> handled by the herdtools compiled from latest master branch of the
> source code.
>
> Comments and suggestions are welcome!
A few nits (see inline), but otherwise the series looks good to me;
with those fixed, please feel free to add:
Acked-by: Andrea Parri <[email protected]>
to the entire series.
Thanks,
Andrea
>
> Regards,
> Boqun
>
> [1]: http://diy.inria.fr/doc/litmus.html#klitmus
>
> Boqun Feng (5):
> tools/memory-model: Add an exception for limitations on _unless()
> family
> 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 +
> tools/memory-model/README | 10 ++++--
> 6 files changed, 92 insertions(+), 15 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
>
> --
> 2.25.0
>
On Thu, Feb 27, 2020 at 06:54:41PM +0100, Andrea Parri wrote:
> On Thu, Feb 27, 2020 at 08:40:44AM +0800, Boqun Feng wrote:
> > A recent discussion raises up the requirement for having test cases for
> > atomic APIs:
> >
> > https://lore.kernel.org/lkml/[email protected]/
> >
> > , 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
> > here.
> >
> > 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:
> > v1: https://lore.kernel.org/linux-doc/[email protected]/
> > v2: https://lore.kernel.org/lkml/[email protected]/
> >
> > Changes since v2:
> >
> > * Change from "RFC" to "PATCH".
> >
> > * Wording improvement in atomic_t.txt as per Alan's suggestion.
> >
> > * Add a new patch describing the usage of atomic_add_unless() is
> > not limited anymore for LKMM litmus tests.
> >
> > My PR on supporting "(void) expr;" statement has been merged by Luc
> > (Thank you, Luc). So all the litmus tests in this patchset can be
> > handled by the herdtools compiled from latest master branch of the
> > source code.
> >
> > Comments and suggestions are welcome!
>
> A few nits (see inline), but otherwise the series looks good to me;
> with those fixed, please feel free to add:
>
> Acked-by: Andrea Parri <[email protected]>
>
Thank you and Alan! I will fix those in the next version.
Regards,
Boqun
> to the entire series.
>
> Thanks,
> Andrea
>
>
> >
> > Regards,
> > Boqun
> >
> > [1]: http://diy.inria.fr/doc/litmus.html#klitmus
> >
> > Boqun Feng (5):
> > tools/memory-model: Add an exception for limitations on _unless()
> > family
> > 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 +
> > tools/memory-model/README | 10 ++++--
> > 6 files changed, 92 insertions(+), 15 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
> >
> > --
> > 2.25.0
> >