From: "Paul E. McKenney" <paulmck@linux.ibm.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: "mark.rutland@arm.com" <mark.rutland@arm.com>,
"linux-mips@linux-mips.org" <linux-mips@linux-mips.org>,
"jhogan@kernel.org" <jhogan@kernel.org>,
"will.deacon@arm.com" <will.deacon@arm.com>,
"bfields@fieldses.org" <bfields@fieldses.org>,
"paulus@samba.org" <paulus@samba.org>,
Eric Dumazet <eric.dumazet@gmail.com>,
Trond Myklebust <trondmy@hammerspace.com>,
aryabinin@virtuozzo.com,
"linux@roeck-us.net" <linux@roeck-us.net>,
"arnd@arndb.de" <arnd@arndb.de>,
"boqun.feng@gmail.com" <boqun.feng@gmail.com>,
dvyukov@google.com,
"linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"jlayton@kernel.org" <jlayton@kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"ralf@linux-mips.org" <ralf@linux-mips.org>,
"anna.schumaker@netapp.com" <anna.schumaker@netapp.com>,
"paul.burton@mips.com" <paul.burton@mips.com>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
"davem@davemloft.net" <davem@davemloft.net>
Subject: Re: [RFC PATCH] lib: Introduce generic __cmpxchg_u64() and use it where needed
Date: Thu, 1 Nov 2018 10:43:33 -0700 [thread overview]
Message-ID: <20181101174333.GV4170@linux.ibm.com> (raw)
In-Reply-To: <20181101171432.GH3178@hirez.programming.kicks-ass.net>
On Thu, Nov 01, 2018 at 06:14:32PM +0100, Peter Zijlstra wrote:
> On Thu, Nov 01, 2018 at 09:59:38AM -0700, Eric Dumazet wrote:
> > On 11/01/2018 09:32 AM, Peter Zijlstra wrote:
> >
> > >> Anyhow, if the atomic maintainers are willing to stand up and state for
> > >> the record that the atomic counters are guaranteed to wrap modulo 2^n
> > >> just like unsigned integers, then I'm happy to take Paul's patch.
> > >
> > > I myself am certainly relying on it.
> >
> > Could we get uatomic_t support maybe ?
>
> Whatever for; it'd be the exact identical same functions as for
> atomic_t, except for a giant amount of code duplication to deal with the
> new type.
>
> That is; today we merged a bunch of scripts that generates most of
> atomic*_t, so we could probably script uatomic*_t wrappers with minimal
> effort, but it would add several thousand lines of code to each compile
> for absolutely no reason what so ever.
>
> > This reminds me of this sooooo silly patch :/
> >
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=adb03115f4590baa280ddc440a8eff08a6be0cb7
>
> Yes, that's stupid. UBSAN is just wrong there.
It would be good for UBSAN to treat atomic operations as guaranteed
2s complement with no UB for signed integer overflow. After all, if
even the C standard is willing to do this...
Ah, but don't we disable interrupts and fall back to normal arithmetic
for UP systems? Hmmm... We do so for atomic_add_return() even on
x86, it turns out:
static __always_inline int arch_atomic_add_return(int i, atomic_t *v)
{
return i + xadd(&v->counter, i);
}
So UBSAN actually did have a point. :-(
Thanx, Paul
next prev parent reply other threads:[~2018-11-01 20:33 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-31 19:52 [RFC PATCH] lib: Introduce generic __cmpxchg_u64() and use it where needed Guenter Roeck
2018-10-31 21:32 ` Paul Burton
2018-10-31 22:02 ` Guenter Roeck
2018-10-31 23:32 ` Paul Burton
2018-11-01 0:17 ` Trond Myklebust
2018-11-01 13:18 ` Mark Rutland
2018-11-01 14:59 ` Peter Zijlstra
2018-11-01 15:22 ` Trond Myklebust
2018-11-01 16:32 ` Peter Zijlstra
2018-11-01 16:59 ` Eric Dumazet
2018-11-01 17:14 ` Peter Zijlstra
2018-11-01 17:27 ` Peter Zijlstra
2018-11-01 20:29 ` Paul E. McKenney
2018-11-01 21:38 ` Peter Zijlstra
2018-11-01 22:26 ` Paul E. McKenney
2018-11-01 17:43 ` Paul E. McKenney [this message]
2018-11-01 17:01 ` Paul E. McKenney
2018-11-01 17:18 ` Peter Zijlstra
2018-11-01 17:34 ` Paul E. McKenney
2018-11-01 17:46 ` Dmitry Vyukov
2018-11-01 21:45 ` Peter Zijlstra
2018-11-02 10:56 ` David Laight
2018-11-02 12:23 ` Peter Zijlstra
2018-11-02 13:38 ` Paul E. McKenney
2018-11-02 13:37 ` Paul E. McKenney
2018-11-02 16:19 ` Andrey Ryabinin
2018-11-05 10:38 ` Peter Zijlstra
2018-11-05 14:24 ` Peter Zijlstra
2018-11-01 17:54 ` Paul Burton
2018-11-01 1:18 ` Guenter Roeck
2018-11-01 6:30 ` Trond Myklebust
2018-11-01 15:28 ` Guenter Roeck
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=20181101174333.GV4170@linux.ibm.com \
--to=paulmck@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=anna.schumaker@netapp.com \
--cc=arnd@arndb.de \
--cc=aryabinin@virtuozzo.com \
--cc=bfields@fieldses.org \
--cc=boqun.feng@gmail.com \
--cc=davem@davemloft.net \
--cc=dvyukov@google.com \
--cc=eric.dumazet@gmail.com \
--cc=jhogan@kernel.org \
--cc=jlayton@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=linux-nfs@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mark.rutland@arm.com \
--cc=netdev@vger.kernel.org \
--cc=paul.burton@mips.com \
--cc=paulus@samba.org \
--cc=peterz@infradead.org \
--cc=ralf@linux-mips.org \
--cc=trondmy@hammerspace.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).