[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1440730099-29133-1-git-send-email-boqun.feng@gmail.com>
Date: Fri, 28 Aug 2015 10:48:14 +0800
From: Boqun Feng <boqun.feng@...il.com>
To: linux-kernel@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org
Cc: Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...nel.org>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Paul Mackerras <paulus@...ba.org>,
Michael Ellerman <mpe@...erman.id.au>,
Thomas Gleixner <tglx@...utronix.de>,
Will Deacon <will.deacon@....com>,
"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
Waiman Long <waiman.long@...com>,
Boqun Feng <boqun.feng@...il.com>
Subject: [RFC 0/5] atomics: powerpc: implement relaxed/acquire/release variants of some atomics
Relaxed/acquire/release variants of atomic operations {add,sub}_return and
{cmp,}xchg are introduced by commit:
"atomics: add acquire/release/relaxed variants of some atomic operations"
which is now on locking/core branch of tip tree.
By default, the generic code will implement relaxed variants as a full
ordered atomic operation and release/acquire variants as a relaxed variants
with a necessary general barrier before or after.
On powerpc, which has a weak memory order model, a relaxed variant can be
implemented more lightweightly than a full ordered one. Further more,
release and acquire variants can be implemented with arch-specific
lightweight barriers.
Therefore this patchset implements the relaxed/acquire/release variants
based on powerpc memory model and specific barriers. A trivial test for
these new variants is also included in this series, because some of these
variants are not used in kernel for now, I would like to make the code of
these variants at least generated somewhere.
The patchset consists of 5 parts:
1. add trivial tests for the new variants in lib/atomic64_test.c
2. introduce arch_atomic_op_*() helpers as the arch-specific helpers
to build other variants based on relaxed.
3. implement atomic{,64}_{add,sub}_return_* variants
4. implement xchg_* and atomic{,64}_xchg_* variants
5. implement cmpxchg_* atomic{,64}_cmpxchg_* variants
This patchset is based on locking/core branch of tip tree and all patches
are built and boot tested for LE pseries.
Regards,
Boqun
--
2.5.0
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists