From: Ingo Molnar <mingo@elte.hu>
To: Paul Mackerras <paulus@samba.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>,
akpm@linux-foundation.org, arnd@arndb.de,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] x86: Code atomic(64)_read and atomic(64)_set in C not CPP [was Re: FRV: Implement atomic64_t]
Date: Thu, 2 Jul 2009 09:21:57 +0200 [thread overview]
Message-ID: <20090702072157.GA11596@elte.hu> (raw)
In-Reply-To: <19019.59848.918621.635117@cargo.ozlabs.ibm.com>
* Paul Mackerras <paulus@samba.org> wrote:
> Occasionally we get bugs where atomic_read or atomic_set are used
> on atomic64_t variables or vice versa. These bugs don't generate
> warnings on x86 because atomic_read and atomic_set are coded as
> macros rather than C functions, so we don't get any type-checking
> on their arguments; similarly for atomic64_read and atomic64_set
> in 64-bit kernels.
>
> This converts them to C functions so that the arguments are
> type-checked and bugs like this will get caught more easily. It
> also converts atomic_cmpxchg and atomic_xchg, and atomic64_cmpxchg
> and atomic64_xchg on 64-bit, so we get type-checking on their
> arguments too.
>
> Compiling a typical 64-bit x86 config, this generates no new
> warnings, and the vmlinux text is 86 bytes smaller.
>
> Signed-off-by: Paul Mackerras <paulus@samba.org>
Thanks Paul!
> ---
> Linus Torvalds writes:
>
> > Btw, Ingo: I looked at the x86-32 versions to be sure, and noticed a
> > couple of buglets:
> >
> > - atomic64_xchg uses "atomic_read()". Sure, it happens to work, since
> > the "atomic_read()" is not type-safe, and gets a non-atomic 64-bit
> > read, but that looks really really bogus.
> >
> > It _should_ use __atomic64_read(), and the 64-bit versions should use a
> > different counter name ("counter64"?) or we should use an inline
> > function for atomic_read(), so that the type safety issue gets fixed.
>
> I did this patch a few weeks ago (before the merge window) and
> sent it to Ingo, Thomas & Peter, but it seems to have got lost.
Yeah, as i noted back then off-list i didnt take it due to it
causing a criss-cross merge:
| > Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
|
| Nice - could someone please remind us later in the merge window to
| have a look at this again? Right now this needs to go into
| perfcounters/core - but i'd like to avoid having to do too many
| cross-changes there.
Linus reminded us ;-)
Ingo
next prev parent reply other threads:[~2009-07-02 7:22 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-30 21:24 [PATCH] FRV: Wire up new syscalls David Howells
2009-06-30 21:34 ` Ingo Molnar
2009-06-30 21:41 ` Arnd Bergmann
2009-06-30 21:54 ` Ingo Molnar
2009-07-01 11:28 ` David Howells
2009-07-01 11:54 ` Ingo Molnar
2009-07-01 12:19 ` David Howells
2009-07-01 12:36 ` Paul Mackerras
2009-07-01 12:41 ` David Howells
2009-07-01 13:13 ` Ingo Molnar
2009-07-01 14:10 ` David Howells
2009-07-01 14:49 ` Ingo Molnar
2009-07-01 15:19 ` David Howells
2009-07-01 16:47 ` [PATCH 1/2] FRV: Implement atomic64_t David Howells
2009-07-01 17:20 ` Linus Torvalds
2009-07-01 17:33 ` David Howells
2009-07-01 21:11 ` Ingo Molnar
2009-07-01 22:57 ` [PATCH] x86: Code atomic(64)_read and atomic(64)_set in C not CPP [was Re: FRV: Implement atomic64_t] Paul Mackerras
2009-07-02 7:21 ` [tip:x86/urgent] x86: Code atomic(64)_read and atomic(64)_set in C not CPP tip-bot for Paul Mackerras
2009-07-02 7:21 ` Ingo Molnar [this message]
2009-07-01 23:46 ` [PATCH 1/2] FRV: Implement atomic64_t [ver #2] David Howells
2009-07-01 23:46 ` [PATCH 2/2] FRV: Add basic performance counter support " David Howells
2009-07-01 23:48 ` [PATCH 1/2] FRV: Implement atomic64_t David Howells
2009-07-02 21:10 ` Eric Dumazet
2009-07-02 21:28 ` Linus Torvalds
2009-07-02 22:08 ` [PATCH] x86: atomic64_t should be 8 bytes aligned Eric Dumazet
2009-07-02 23:53 ` Linus Torvalds
2009-07-03 6:14 ` Ingo Molnar
2009-07-03 12:42 ` [tip:perfcounters/urgent] x86: atomic64: The atomic64_t data type should be 8 bytes aligned on 32-bit too tip-bot for Eric Dumazet
2009-07-03 16:58 ` Linus Torvalds
2009-07-03 17:49 ` H. Peter Anvin
2009-07-03 12:42 ` [tip:perfcounters/urgent] x86: atomic64: Move the 32-bit atomic64_t implementation to a .c file tip-bot for Ingo Molnar
2009-07-03 16:47 ` Linus Torvalds
2009-07-03 18:31 ` [tip:perfcounters/urgent] x86: atomic64: Clean up atomic64_sub_and_test() and atomic64_add_negative() tip-bot for Ingo Molnar
2009-07-03 19:18 ` tip-bot for Ingo Molnar
2009-07-04 0:05 ` [tip:perfcounters/urgent] x86: atomic64: Move the 32-bit atomic64_t implementation to a .c file Paul Mackerras
2009-07-05 11:25 ` Ingo Molnar
2009-07-03 12:43 ` [tip:perfcounters/urgent] x86: atomic64: Improve atomic64_read() tip-bot for Eric Dumazet
2009-07-03 12:43 ` [tip:perfcounters/urgent] x86: atomic64: Improve cmpxchg8b() tip-bot for Eric Dumazet
2009-07-03 12:43 ` [tip:perfcounters/urgent] x86: atomic64: Improve atomic64_add_return() tip-bot for Ingo Molnar
2009-07-03 12:43 ` [tip:perfcounters/urgent] x86: atomic64: Reduce size of functions tip-bot for Ingo Molnar
2009-07-03 12:44 ` [tip:perfcounters/urgent] x86: atomic64: Fix unclean type use in atomic64_xchg() tip-bot for Ingo Molnar
2009-07-03 17:02 ` Linus Torvalds
2009-07-03 18:00 ` Ingo Molnar
2009-07-03 12:44 ` [tip:perfcounters/urgent] x86: atomic64: Improve atomic64_read() tip-bot for Eric Dumazet
2009-07-03 14:50 ` [PATCH -tip] x86: atomic64: inline atomic64_read() Eric Dumazet
2009-07-03 18:04 ` Ingo Molnar
2009-07-03 18:10 ` Arjan van de Ven
2009-07-03 18:18 ` Ingo Molnar
2009-07-03 18:25 ` Andi Kleen
2009-07-03 18:30 ` Arjan van de Ven
2009-07-03 18:43 ` Ingo Molnar
2009-07-03 18:24 ` Andi Kleen
2009-07-03 18:31 ` [tip:perfcounters/urgent] x86: atomic64: Optimize CMPXCHG8B sequences to not use the LOCK prefix tip-bot for Ingo Molnar
2009-07-03 18:45 ` Ingo Molnar
2009-07-03 19:10 ` [PATCH -tip] x86: atomic64: inline atomic64_read() Linus Torvalds
2009-07-03 19:17 ` Ingo Molnar
2009-07-03 19:38 ` Linus Torvalds
2009-07-03 21:40 ` Ingo Molnar
2009-07-03 18:31 ` [tip:perfcounters/urgent] x86: atomic64: Inline atomic64_read() again tip-bot for Eric Dumazet
2009-07-03 19:18 ` tip-bot for Eric Dumazet
2009-07-04 9:49 ` tip-bot for Eric Dumazet
2009-07-03 12:44 ` [tip:perfcounters/urgent] x86: atomic64: Code atomic(64)_read and atomic(64)_set in C not CPP tip-bot for Paul Mackerras
2009-07-03 12:48 ` tip-bot for Paul Mackerras
2009-07-03 12:48 ` [tip:perfcounters/urgent] x86: atomic64: Improve atomic64_read() tip-bot for Eric Dumazet
2009-07-03 15:33 ` [tip:perfcounters/urgent] x86: atomic64: Export APIs to modules tip-bot for Ingo Molnar
2009-07-03 18:30 ` tip-bot for Ingo Molnar
2009-07-03 18:30 ` [tip:perfcounters/urgent] x86: atomic64: Improve atomic64_xchg() tip-bot for Ingo Molnar
2009-07-03 12:01 ` [patch] x86: atomic64_t: Improve atomic64_add_return() Ingo Molnar
2009-07-03 12:26 ` [PATCH] x86: atomic64_t: _cmpxchg() & _read() optimizations Eric Dumazet
2009-07-03 12:40 ` Ingo Molnar
2009-07-03 17:38 ` [patch] x86: atomic64_t: Improve atomic64_add_return() Linus Torvalds
2009-07-03 6:05 ` [PATCH 1/2] FRV: Implement atomic64_t Eric Dumazet
2009-07-03 12:27 ` Ingo Molnar
2009-07-03 12:39 ` Eric Dumazet
2009-07-03 11:17 ` Ingo Molnar
2009-07-03 11:26 ` Ingo Molnar
2009-07-01 16:47 ` [PATCH 2/2] FRV: Add basic performance counter support David Howells
2009-07-01 21:10 ` Ingo Molnar
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=20090702072157.GA11596@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=paulus@samba.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/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.