From: Boqun Feng <boqun.feng@gmail.com>
To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org
Cc: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@kernel.org>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Paul Mackerras <paulus@samba.org>,
Michael Ellerman <mpe@ellerman.id.au>,
Thomas Gleixner <tglx@linutronix.de>,
Will Deacon <will.deacon@arm.com>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
Waiman Long <waiman.long@hp.com>,
Davidlohr Bueso <dave@stgolabs.net>,
Boqun Feng <boqun.feng@gmail.com>
Subject: [PATCH powerpc/next v6 0/4] atomics: powerpc: Implement relaxed/acquire/release variants
Date: Tue, 15 Dec 2015 22:24:13 +0800 [thread overview]
Message-ID: <1450189457-10589-1-git-send-email-boqun.feng@gmail.com> (raw)
Hi all,
This is v6 of the series.
Link for v1: https://lkml.org/lkml/2015/8/27/798
Link for v2: https://lkml.org/lkml/2015/9/16/527
Link for v3: https://lkml.org/lkml/2015/10/12/368
Link for v4: https://lkml.org/lkml/2015/10/14/670
Link for v5: https://lkml.org/lkml/2015/10/26/141
Changes since v5:
* rebase on the next branch of powerpc.
* pull two fix and one testcase patches out, which are already
sent separately
* some clean up or code format fixing.
Paul, Peter and Will, thank you for your comments and suggestions in the review
of previous versions. From this version on, This series is against the next
branch of powerpc tree, because most of the code touch arch/powerpc/*.
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"
and {inc,dec}_return has been introduced by commit:
"locking/asm-generic: Add _{relaxed|acquire|release}() variants for inc/dec
atomics"
By default, the generic code will implement a relaxed variant as a full ordered
atomic operation and release/acquire a variant as a relaxed variant with a
necessary general barrier before or after.
On PPC, 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 PPC memory model and specific barriers.
The patchset consists of 4 parts:
1. Allow architectures to define their own __atomic_op_*() helpers
to build other variants based on relaxed.
2. Implement atomic{,64}_{add,sub,inc,dec}_return_* variants
3. Implement xchg_* and atomic{,64}_xchg_* variants
4. Implement cmpxchg_* atomic{,64}_cmpxchg_* variants
This patchset is against:
git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
commit 5f337e3e5b04b32793fd51adab438d46df99c933
and has been tested by 0day. I also have run build and boot tests of this in
both guest(pseries) and host(powernv) environments.
Looking forward to any suggestion, question and comment ;-)
Regards,
Boqun
next reply other threads:[~2015-12-15 14:24 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-15 14:24 Boqun Feng [this message]
2015-12-15 14:24 ` [PATCH v6 1/4] atomics: Allow architectures to define their own __atomic_op_* helpers Boqun Feng
2016-02-22 9:45 ` [v6, " Michael Ellerman
2015-12-15 14:24 ` [PATCH v6 2/4] powerpc: atomic: Implement atomic{, 64}_*_return_* variants Boqun Feng
2016-01-06 2:07 ` Boqun Feng
2016-01-06 2:08 ` [PATCH RESEND " Boqun Feng
2015-12-15 14:24 ` [PATCH v6 3/4] powerpc: atomic: Implement acquire/release/relaxed variants for xchg Boqun Feng
2015-12-15 14:24 ` [PATCH v6 4/4] powerpc: atomic: Implement acquire/release/relaxed variants for cmpxchg Boqun Feng
2015-12-18 17:12 ` [PATCH powerpc/next v6 0/4] atomics: powerpc: Implement relaxed/acquire/release variants Davidlohr Bueso
2015-12-20 7:15 ` Boqun Feng
2015-12-23 2:40 ` Michael Ellerman
2015-12-23 3:33 ` Boqun Feng
2015-12-23 10:54 ` Boqun Feng
2015-12-23 12:18 ` Davidlohr Bueso
2015-12-27 7:53 ` Michael Ellerman
2015-12-28 0:30 ` 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:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1450189457-10589-1-git-send-email-boqun.feng@gmail.com \
--to=boqun.feng@gmail.com \
--cc=benh@kernel.crashing.org \
--cc=dave@stgolabs.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mingo@kernel.org \
--cc=mpe@ellerman.id.au \
--cc=paulmck@linux.vnet.ibm.com \
--cc=paulus@samba.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=waiman.long@hp.com \
--cc=will.deacon@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).