From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Davidlohr Bueso <dave@stgolabs.net>
Cc: peterz@infradead.org, mingo@kernel.org, davem@davemloft.net,
cw00.choi@samsung.com, dougthompson@xmission.com, bp@alien8.de,
mchehab@osg.samsung.com, gregkh@linuxfoundation.org, pfg@sgi.com,
jikos@kernel.org, hans.verkuil@cisco.com,
awalls@md.metrocast.net, dledford@redhat.com,
sean.hefty@intel.com, kys@microsoft.com,
heiko.carstens@de.ibm.com, sumit.semwal@linaro.org,
schwidefsky@de.ibm.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH -tip 00/12] locking/atomics: Add and use inc,dec calls for FETCH-OP flavors
Date: Fri, 24 Jun 2016 10:44:04 -0700 [thread overview]
Message-ID: <1466790244.2343.60.camel@HansenPartnership.com> (raw)
In-Reply-To: <20160624173028.GA24658@linux-80c1.suse>
On Fri, 2016-06-24 at 10:30 -0700, Davidlohr Bueso wrote:
> On Fri, 24 Jun 2016, James Bottomley wrote:
>
> > On Mon, 2016-06-20 at 13:05 -0700, Davidlohr Bueso wrote:
> > > Hi,
> > >
> > > The series is really straightforward and based on Peter's work
> > > that introduces[1] the atomic_fetch_$op machinery. Only patch 1
> > > implements the actual atomic_fetch_{inc,dec} calls based on
> > > atomic_fetch_{add,sub}.
> >
> > Could I just ask why? atomic_inc_return(x) - 1 seems a reasonable
> > thing to do to me.
>
> For one restoring the old state like that can be racy and looses the
> notion of atomicity.
I don't understand this argument: any return of an atomic value is
inherently racy because the atomic source may have changed by the time
you use the returned value. It's no more or less racy to my mind to
return the original value and increment than to return the incremented
value and subtract one.
> The new family of atomic_fetch_$ops also better express the purpose
> of the call imo.
So this is probably the core of my objection: adding APIs simply
because we can. A good reason to add things like this is because it's
a common pattern people get wrong, because we can optimize it nicely on
an architecture, or some other good reason. Absent a good reason it
doesn't seem like a good API addition because trying to keep up with
all the API variants when you want to use atomics adds to the burden of
the programmer.
> Finally, the added machinery (considering it came from fetch_op()
> NOHZ needs), was mainly suggested by Linus (although yes, we don't
> have users for all the calls):
> https://lkml.org/lkml/2016/3/15/352.
I'd really rather you told me *you* believed it was a good idea (and
why) ...
James
next prev parent reply other threads:[~2016-06-24 17:44 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-20 20:05 [PATCH -tip 00/12] locking/atomics: Add and use inc,dec calls for FETCH-OP flavors Davidlohr Bueso
2016-06-20 20:05 ` [PATCH 01/12] locking/atomic: Introduce inc/dec " Davidlohr Bueso
2016-06-21 7:28 ` Peter Zijlstra
2016-06-21 13:33 ` [PATCH v2 " Davidlohr Bueso
2016-06-21 16:36 ` Davidlohr Bueso
2016-06-23 9:09 ` Peter Zijlstra
2016-06-24 16:34 ` Davidlohr Bueso
2016-06-24 18:48 ` Peter Zijlstra
2016-06-28 21:56 ` [PATCH -v4 " Davidlohr Bueso
2016-07-07 8:33 ` [tip:locking/core] locking/atomic: Introduce inc/dec variants for the atomic_fetch_$op() API tip-bot for Davidlohr Bueso
2016-06-20 20:05 ` [PATCH 02/12] net/neighbour: Employ atomic_fetch_inc() Davidlohr Bueso
2016-06-20 20:05 ` [PATCH 03/12] PM,devfreq: " Davidlohr Bueso
2016-07-02 5:04 ` Chanwoo Choi
2016-06-20 20:05 ` [PATCH 04/12] EDAC: " Davidlohr Bueso
2016-06-21 13:59 ` Borislav Petkov
2016-06-20 20:05 ` [PATCH 05/12] tty/serial: " Davidlohr Bueso
2016-06-20 20:05 ` [PATCH 06/12] HID,wacom: " Davidlohr Bueso
2016-06-22 8:10 ` Jiri Kosina
2016-06-20 20:05 ` [PATCH 07/12] drivers/media: " Davidlohr Bueso
2016-07-13 16:07 ` Mauro Carvalho Chehab
2016-06-20 20:06 ` [PATCH 08/12] infiniband: " Davidlohr Bueso
2016-06-20 20:06 ` [PATCH 09/12] drivers/hv: " Davidlohr Bueso
2016-06-20 20:06 ` [PATCH 10/12] s390/scm_block: " Davidlohr Bueso
2016-06-20 20:06 ` [PATCH 11/12] scsi: " Davidlohr Bueso
2016-06-20 20:06 ` [PATCH 12/12] dma-buf/fence: Employ atomic_fetch_add Davidlohr Bueso
2016-06-24 16:46 ` [PATCH -tip 00/12] locking/atomics: Add and use inc,dec calls for FETCH-OP flavors James Bottomley
2016-06-24 17:30 ` Davidlohr Bueso
2016-06-24 17:44 ` James Bottomley [this message]
2016-06-24 20:35 ` Davidlohr Bueso
2016-06-24 17:45 ` KY Srinivasan
2016-06-24 19:35 ` Davidlohr Bueso
2016-06-24 19:17 ` Peter Zijlstra
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=1466790244.2343.60.camel@HansenPartnership.com \
--to=james.bottomley@hansenpartnership.com \
--cc=awalls@md.metrocast.net \
--cc=bp@alien8.de \
--cc=cw00.choi@samsung.com \
--cc=dave@stgolabs.net \
--cc=davem@davemloft.net \
--cc=dledford@redhat.com \
--cc=dougthompson@xmission.com \
--cc=gregkh@linuxfoundation.org \
--cc=hans.verkuil@cisco.com \
--cc=heiko.carstens@de.ibm.com \
--cc=jikos@kernel.org \
--cc=kys@microsoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mchehab@osg.samsung.com \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=pfg@sgi.com \
--cc=schwidefsky@de.ibm.com \
--cc=sean.hefty@intel.com \
--cc=sumit.semwal@linaro.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.