From: Ingo Molnar <mingo@kernel.org>
To: Will Deacon <will.deacon@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
linux-kernel@vger.kernel.org, akpm@linux-foundation.org,
mark.rutland@arm.com, torvalds@linux-foundation.org,
paulmck@linux.vnet.ibm.com, tglx@linutronix.de, hpa@zytor.com,
linux-tip-commits@vger.kernel.org
Subject: Re: [tip:locking/core] locking/atomics: Simplify the op definitions in atomic.h some more
Date: Tue, 15 May 2018 10:54:17 +0200 [thread overview]
Message-ID: <20180515085417.GB30420@gmail.com> (raw)
In-Reply-To: <20180509130316.GB20254@arm.com>
* Will Deacon <will.deacon@arm.com> wrote:
> With this patch, we're already seeing arch code (powerpc, risc-v) having
> to add what is basically boiler-plate code, and it seems like we're just
> doing this to make the generic code more readable! I'd much prefer we kept
> the arch code simple, and took on the complexity burden in the generic code
> where it can be looked after in one place.
For PowerPC this is not really true, the patch has this effect:
2 files changed, 28 insertions(+), 20 deletions(-)
and made it more obvious where the arch gets its low level definitions from.
For RISC-V it's true:
arch/riscv/include/asm/atomic.h | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
but even before this it was already largely boilerplate:
#define atomic_inc_return_relaxed atomic_inc_return_relaxed
#define atomic_dec_return_relaxed atomic_dec_return_relaxed
#define atomic_inc_return atomic_inc_return
#define atomic_dec_return atomic_dec_return
#define atomic_fetch_inc_relaxed atomic_fetch_inc_relaxed
#define atomic_fetch_dec_relaxed atomic_fetch_dec_relaxed
#define atomic_fetch_inc atomic_fetch_inc
#define atomic_fetch_dec atomic_fetch_dec
#ifndef CONFIG_GENERIC_ATOMIC64
#define atomic64_inc_return_relaxed atomic64_inc_return_relaxed
#define atomic64_dec_return_relaxed atomic64_dec_return_relaxed
#define atomic64_inc_return atomic64_inc_return
#define atomic64_dec_return atomic64_dec_return
#define atomic64_fetch_inc_relaxed atomic64_fetch_inc_relaxed
#define atomic64_fetch_dec_relaxed atomic64_fetch_dec_relaxed
#define atomic64_fetch_inc atomic64_fetch_inc
#define atomic64_fetch_dec atomic64_fetch_dec
#endif
What this change does it that it makes _all_ the low level ops obviously mapped in
the low level header, if an arch decides to implement the _relaxed variants
itself. Not half of them in the low level header, half of them in the generic
header...
Thanks,
Ingo
next prev parent reply other threads:[~2018-05-15 8:54 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-04 17:39 [PATCH 0/6] arm64: add instrumented atomics Mark Rutland
2018-05-04 17:39 ` Mark Rutland
2018-05-04 17:39 ` [PATCH 1/6] locking/atomic, asm-generic: instrument ordering variants Mark Rutland
2018-05-04 17:39 ` Mark Rutland
2018-05-04 18:01 ` Peter Zijlstra
2018-05-04 18:01 ` Peter Zijlstra
2018-05-04 18:09 ` Mark Rutland
2018-05-04 18:09 ` Mark Rutland
2018-05-04 18:24 ` Peter Zijlstra
2018-05-04 18:24 ` Peter Zijlstra
2018-05-05 9:12 ` Mark Rutland
2018-05-05 9:12 ` Mark Rutland
2018-05-05 8:11 ` [PATCH] locking/atomics: Clean up the atomic.h maze of #defines Ingo Molnar
2018-05-05 8:11 ` Ingo Molnar
2018-05-05 8:36 ` [PATCH] locking/atomics: Simplify the op definitions in atomic.h some more Ingo Molnar
2018-05-05 8:36 ` Ingo Molnar
2018-05-05 8:54 ` [PATCH] locking/atomics: Combine the atomic_andnot() and atomic64_andnot() API definitions Ingo Molnar
2018-05-05 8:54 ` Ingo Molnar
2018-05-06 12:15 ` [tip:locking/core] " tip-bot for Ingo Molnar
2018-05-06 14:15 ` [PATCH] " Andrea Parri
2018-05-06 14:15 ` Andrea Parri
2018-05-06 12:14 ` [tip:locking/core] locking/atomics: Simplify the op definitions in atomic.h some more tip-bot for Ingo Molnar
2018-05-09 7:33 ` Peter Zijlstra
2018-05-09 13:03 ` Will Deacon
2018-05-15 8:54 ` Ingo Molnar [this message]
2018-05-15 8:35 ` Ingo Molnar
2018-05-15 11:41 ` Peter Zijlstra
2018-05-15 12:13 ` Peter Zijlstra
2018-05-15 15:43 ` Mark Rutland
2018-05-15 17:10 ` Peter Zijlstra
2018-05-15 17:53 ` Mark Rutland
2018-05-15 18:11 ` Peter Zijlstra
2018-05-15 18:15 ` Peter Zijlstra
2018-05-15 18:52 ` Linus Torvalds
2018-05-15 19:39 ` Peter Zijlstra
2018-05-21 17:12 ` Mark Rutland
2018-05-06 14:12 ` [PATCH] " Andrea Parri
2018-05-06 14:12 ` Andrea Parri
2018-05-06 14:57 ` Ingo Molnar
2018-05-06 14:57 ` Ingo Molnar
2018-05-07 9:54 ` Andrea Parri
2018-05-07 9:54 ` Andrea Parri
2018-05-18 18:43 ` Palmer Dabbelt
2018-05-18 18:43 ` Palmer Dabbelt
2018-05-05 8:47 ` [PATCH] locking/atomics: Clean up the atomic.h maze of #defines Peter Zijlstra
2018-05-05 8:47 ` Peter Zijlstra
2018-05-05 9:04 ` Ingo Molnar
2018-05-05 9:04 ` Ingo Molnar
2018-05-05 9:24 ` Peter Zijlstra
2018-05-05 9:24 ` Peter Zijlstra
2018-05-05 9:38 ` Ingo Molnar
2018-05-05 9:38 ` Ingo Molnar
2018-05-05 10:00 ` [RFC PATCH] locking/atomics/powerpc: Introduce optimized cmpxchg_release() family of APIs for PowerPC Ingo Molnar
2018-05-05 10:00 ` Ingo Molnar
2018-05-05 10:26 ` Boqun Feng
2018-05-05 10:26 ` Boqun Feng
2018-05-06 1:56 ` Benjamin Herrenschmidt
2018-05-06 1:56 ` Benjamin Herrenschmidt
2018-05-05 10:16 ` [PATCH] locking/atomics: Clean up the atomic.h maze of #defines Boqun Feng
2018-05-05 10:16 ` Boqun Feng
2018-05-05 10:35 ` [RFC PATCH] locking/atomics/powerpc: Clarify why the cmpxchg_relaxed() family of APIs falls back to full cmpxchg() Ingo Molnar
2018-05-05 10:35 ` Ingo Molnar
2018-05-05 11:28 ` Boqun Feng
2018-05-05 11:28 ` Boqun Feng
2018-05-05 13:27 ` [PATCH] locking/atomics/powerpc: Move cmpxchg helpers to asm/cmpxchg.h and define the full set of cmpxchg APIs Ingo Molnar
2018-05-05 13:27 ` Ingo Molnar
2018-05-05 14:03 ` Boqun Feng
2018-05-05 14:03 ` Boqun Feng
2018-05-06 12:11 ` Ingo Molnar
2018-05-06 12:11 ` Ingo Molnar
2018-05-07 1:04 ` Boqun Feng
2018-05-07 1:04 ` Boqun Feng
2018-05-07 6:50 ` Ingo Molnar
2018-05-07 6:50 ` Ingo Molnar
2018-05-06 12:13 ` [tip:locking/core] " tip-bot for Boqun Feng
2018-05-07 13:31 ` [PATCH v2] " Boqun Feng
2018-05-07 13:31 ` Boqun Feng
2018-05-05 9:05 ` [PATCH] locking/atomics: Clean up the atomic.h maze of #defines Dmitry Vyukov
2018-05-05 9:05 ` Dmitry Vyukov
2018-05-05 9:32 ` Peter Zijlstra
2018-05-05 9:32 ` Peter Zijlstra
2018-05-07 6:43 ` [RFC PATCH] locking/atomics/x86/64: Clean up and fix details of <asm/atomic64_64.h> Ingo Molnar
2018-05-07 6:43 ` Ingo Molnar
2018-05-05 9:09 ` [PATCH] locking/atomics: Clean up the atomic.h maze of #defines Ingo Molnar
2018-05-05 9:09 ` Ingo Molnar
2018-05-05 9:29 ` Peter Zijlstra
2018-05-05 9:29 ` Peter Zijlstra
2018-05-05 10:48 ` [PATCH] locking/atomics: Shorten the __atomic_op() defines to __op() Ingo Molnar
2018-05-05 10:48 ` Ingo Molnar
2018-05-05 10:59 ` Ingo Molnar
2018-05-05 10:59 ` Ingo Molnar
2018-05-06 12:15 ` [tip:locking/core] " tip-bot for Ingo Molnar
2018-05-06 12:14 ` [tip:locking/core] locking/atomics: Clean up the atomic.h maze of #defines tip-bot for Ingo Molnar
2018-05-04 17:39 ` [PATCH 2/6] locking/atomic, asm-generic: instrument atomic*andnot*() Mark Rutland
2018-05-04 17:39 ` Mark Rutland
2018-05-04 17:39 ` [PATCH 3/6] arm64: use <linux/atomic.h> for cmpxchg Mark Rutland
2018-05-04 17:39 ` Mark Rutland
2018-05-04 17:39 ` [PATCH 4/6] arm64: fix assembly constraints " Mark Rutland
2018-05-04 17:39 ` Mark Rutland
2018-05-04 17:39 ` [PATCH 5/6] arm64: use instrumented atomics Mark Rutland
2018-05-04 17:39 ` Mark Rutland
2018-05-04 17:39 ` [PATCH 6/6] arm64: instrument smp_{load_acquire,store_release} Mark Rutland
2018-05-04 17:39 ` Mark Rutland
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=20180515085417.GB30420@gmail.com \
--to=mingo@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.