linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: Chris Metcalf <cmetcalf@ezchip.com>
Cc: "Peter Zijlstra" <peterz@infradead.org>,
	"Geert Uytterhoeven" <geert@linux-m68k.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Linux-Arch <linux-arch@vger.kernel.org>,
	"Richard Henderson" <rth@twiddle.net>,
	"Vineet Gupta" <vgupta@synopsys.com>,
	"Will Deacon" <will.deacon@arm.com>,
	"Håvard Skinnemoen" <hskinnemoen@gmail.com>,
	"Miao Steven" <realmz6@gmail.com>,
	"David Howells" <dhowells@redhat.com>,
	"Richard Kuo" <rkuo@codeaurora.org>,
	"Tony Luck" <tony.luck@intel.com>,
	"James Hogan" <james.hogan@imgtec.com>,
	"Ralf Baechle" <ralf@linux-mips.org>,
	"James E.J. Bottomley" <jejb@parisc-linux.org>,
	"Benjamin Herrenschmidt" <benh@kernel.crashing.org>,
	"Heiko Carstens" <heiko.carstens@de.ibm.com>,
	"David S. Miller" <davem@davemloft.net>,
	"Ingo Molnar" <mingo@kernel.org>
Subject: Re: [RFC][PATCH 23/24] atomic: Collapse all atomic_{set,clear}_mask definitions
Date: Fri, 10 Jul 2015 14:42:56 +0100	[thread overview]
Message-ID: <20150710134256.GS7557@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <559FC9CC.6000400@ezchip.com>

On Fri, Jul 10, 2015 at 09:34:04AM -0400, Chris Metcalf wrote:
> On 7/10/2015 6:39 AM, Peter Zijlstra wrote:
> >On Fri, Jul 10, 2015 at 11:10:33AM +0200, Geert Uytterhoeven wrote:
> >>Hi Peter,
> >>
> >>On Thu, Jul 9, 2015 at 7:29 PM, Peter Zijlstra <peterz@infradead.org> wrote:
> >>>--- a/include/linux/atomic.h
> >>>+++ b/include/linux/atomic.h
> >>>@@ -28,6 +28,23 @@ static inline int atomic_add_unless(atom
> >>>  #define atomic_inc_not_zero(v)         atomic_add_unless((v), 1, 0)
> >>>  #endif
> >>>
> >>>+#ifndef atomic_nand
> >>>+static inline void atomic_nand(int i, atomic_t *v)
> >>>+{
> >>>+       atomic_and(~i, v);
> >>That sounds like a misnomer...
> >>
> >>Your NAND is "A & ~B", while my[*] NAND is "~(A & B)"?
> >>
> >>[*] https://en.wikipedia.org/wiki/NAND_logic
> >Right you are.
> >
> >>What about atomic_clear()? (Is atomic_bic() too ARM-centric?)
> >atomic_and_not() ?
> 
> I've seen this as ANDN (as opposed to NAND).  That's the name I used in
> the tilepro atomics as the thing that implements the bitmask clear operation.
> SPARC also has an "andn" instruction with this semantics.

The obvious question though is whether we have an established name for this
operation elsewhere in the kernel, and whether we should have consistency.
In include/linux, we already have (grepping for 'and_*not'):

include/linux/nodemask.h:#define nodes_andnot(dst, src1, src2) \
include/linux/bitmap.h:extern int __bitmap_andnot(unsigned long *dst, const unsigned long *bitmap1,
include/linux/cpumask.h:static inline int cpumask_andnot(struct cpumask *dstp,

We also have:

include/linux/signal.h:#define _sig_andn(x,y)       ((x) & ~(y))

which seems to be the only instance of "andn" in include/.

-- 
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.

  reply	other threads:[~2015-07-10 13:43 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-09 17:28 [RFC][PATCH 00/24] arch: Provide atomic logic ops Peter Zijlstra
2015-07-09 17:28 ` [RFC][PATCH 01/24] alpha: Provide atomic_{or,xor,and} Peter Zijlstra
2015-07-09 17:28 ` [RFC][PATCH 02/24] arc: " Peter Zijlstra
2015-07-10  4:30   ` Vineet Gupta
2015-07-10  7:05     ` Peter Zijlstra
2015-07-13 12:43       ` Vineet Gupta
2015-07-09 17:28 ` [RFC][PATCH 03/24] arm: " Peter Zijlstra
2015-07-09 18:02   ` Peter Zijlstra
2015-07-10 10:24     ` Russell King - ARM Linux
2015-07-09 17:28 ` [RFC][PATCH 04/24] arm64: " Peter Zijlstra
2015-07-10  8:42   ` Will Deacon
2015-07-10 16:23     ` Peter Zijlstra
2015-07-13  9:29       ` Will Deacon
2015-07-15 16:01   ` Will Deacon
2015-07-15 16:46     ` Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 05/24] avr32: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 06/24] blackfin: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 07/24] hexagon: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 08/24] ia64: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 09/24] m32r: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 10/24] m68k: " Peter Zijlstra
2015-07-10  9:13   ` Geert Uytterhoeven
2015-07-09 17:29 ` [RFC][PATCH 11/24] metag: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 12/24] mips: " Peter Zijlstra
2015-07-09 18:45   ` Ralf Baechle
2015-07-09 17:29 ` [RFC][PATCH 13/24] mn10300: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 14/24] parisc: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 15/24] powerpc: " Peter Zijlstra
2015-07-09 21:49   ` Benjamin Herrenschmidt
2015-07-09 17:29 ` [RFC][PATCH 16/24] sh: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 17/24] sparc: " Peter Zijlstra
2015-07-09 18:05   ` David Miller
2015-07-09 17:29 ` [RFC][PATCH 18/24] xtensa: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 19/24] s390: " Peter Zijlstra
2015-07-10  7:17   ` Heiko Carstens
2015-07-10 10:22     ` Peter Zijlstra
2015-07-10 10:52       ` Heiko Carstens
2015-07-10 11:28       ` Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 20/24] x86: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 21/24] atomic: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 22/24] frv: Rewrite atomic implementation Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 23/24] atomic: Collapse all atomic_{set,clear}_mask definitions Peter Zijlstra
2015-07-10  9:10   ` Geert Uytterhoeven
2015-07-10  9:13     ` Vineet Gupta
2015-07-10 10:39     ` Peter Zijlstra
2015-07-10 13:34       ` Chris Metcalf
2015-07-10 13:42         ` Russell King - ARM Linux [this message]
2015-07-10 16:27           ` Peter Zijlstra
2015-07-10 17:35             ` Chris Metcalf
2015-07-10 19:45             ` Chris Metcalf
2015-07-09 17:29 ` [RFC][PATCH 24/24] atomic: Replace atomic_{set,clear}_mask() usage Peter Zijlstra
2015-07-09 20:38 ` [PATCH] tile: Provide atomic_{or,xor,and} Chris Metcalf
2015-07-09 20:49   ` Peter Zijlstra
2015-07-27 12:17   ` [tip:locking/arch-atomic] " tip-bot for Chris Metcalf

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=20150710134256.GS7557@n2100.arm.linux.org.uk \
    --to=linux@arm.linux.org.uk \
    --cc=benh@kernel.crashing.org \
    --cc=cmetcalf@ezchip.com \
    --cc=davem@davemloft.net \
    --cc=dhowells@redhat.com \
    --cc=geert@linux-m68k.org \
    --cc=heiko.carstens@de.ibm.com \
    --cc=hskinnemoen@gmail.com \
    --cc=james.hogan@imgtec.com \
    --cc=jejb@parisc-linux.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=ralf@linux-mips.org \
    --cc=realmz6@gmail.com \
    --cc=rkuo@codeaurora.org \
    --cc=rth@twiddle.net \
    --cc=tony.luck@intel.com \
    --cc=vgupta@synopsys.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).