All of lore.kernel.org
 help / color / mirror / Atom feed
From: "zhaoxiu.zeng" <zhaoxiu.zeng@gmail.com>
To: Sam Ravnborg <sam@ravnborg.org>
Cc: Denys Vlasenko <dvlasenk@redhat.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Martin Kepplinger <martink@posteo.de>,
	Sasha Levin <sasha.levin@oracle.com>,
	Ingo Molnar <mingo@kernel.org>, Yury Norov <yury.norov@gmail.com>,
	linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org
Subject: Re: [PATCH 01/31] bitops: add parity functions
Date: Sun, 27 Mar 2016 21:38:23 +0800	[thread overview]
Message-ID: <56F7E24F.3040306@gmail.com> (raw)
In-Reply-To: <20160327124401.GA7407@ravnborg.org>

On 2016/3/27 20:44, Sam Ravnborg wrote:
> Hi Zeng.
> 
> Looking through the arch specific implementations of __arch_parity().
> Some architectures uses #defines, other uses inline static functions.
> 
> Any particular reason that you select one approach over the other
> in the different cases?
> 
> ia64:
> +#define __arch_parity32(x) ((unsigned int) __arch_parity64((x) & 0xfffffffful))
> +#define __arch_parity16(x) ((unsigned int) __arch_parity64((x) & 0xfffful))
> +#define __arch_parity8(x)  ((unsigned int) __arch_parity64((x) & 0xfful))
> +#define __arch_parity4(x)  ((unsigned int) __arch_parity64((x) & 0xful))
> 
> tile:
> +static inline unsigned int __arch_parity32(unsigned int w)
> +{
> +	return __builtin_popcount(w) & 1;
> +}
> +
> +static inline unsigned int __arch_parity16(unsigned int w)
> +{
> +	return __arch_parity32(w & 0xffff);
> +}
> +
> +static inline unsigned int __arch_parity8(unsigned int w)
> +{
> +	return __arch_parity32(w & 0xff);
> +}
> +
> +static inline unsigned int __arch_parity4(unsigned int w)
> +{
> +	return __arch_parity32(w & 0xf);
> +}
> 

No particular reason, just like the architecture's __arch_hweightN.

> Just two examples.
> 
> Adding the parity helpers seems like veny nice simplifications.
> 
> A few comments to some of those I looked at.
> (I am not subscribed to lkml, so you get it as comments here)
> 

I think the conversion is simple and readable.

> [PATCH 21/31] mtd: use parity16 in ssfdc.c
> The original code semes to check that the parity equals the
> value of first bit in the address.
> This seems lost after the conversion.
> 

The original get_parity return 1 if the number is even, so
if block_address is valid, "block_address & 0x7ff" must be odd.

> [PATCH 20/31] scsi: use parity32 in isci/phy.c
> +	if (parity32(phy_cap.all))
>  		phy_cap.parity = 1;
> Could be written like this - simpler IMO:
> 	phy_cap.parity = parity32(phy_cap.all);
> 
> 
> 	Sam
> 
Yes. Thanks!

  reply	other threads:[~2016-03-27 13:38 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-24  3:03 [PATCH 01/31] bitops: add parity functions Zhaoxiu Zeng
2016-03-24  8:38 ` Denys Vlasenko
2016-03-24 22:28   ` Andrew Morton
2016-03-26 22:08     ` Martin Kepplinger
2016-03-27  7:51       ` zhaoxiu.zeng
2016-03-27  3:33   ` zhaoxiu.zeng
2016-03-27 12:44     ` Sam Ravnborg
2016-03-27 13:38       ` zhaoxiu.zeng [this message]
2016-03-27 17:56         ` Sam Ravnborg
2016-03-28  2:44           ` Zeng Zhaoxiu
2016-03-28  2:15         ` Zeng Zhaoxiu
2016-03-28  6:51     ` Sam Ravnborg
2016-03-29  2:27       ` Zeng Zhaoxiu
2016-03-29  2:56         ` Joe Perches
2016-03-27  4:02 ` [PATCH 02/31] Include generic parity.h in some architectures' bitops.h zhaoxiu.zeng
2016-03-27  4:02 ` zhaoxiu.zeng
2016-03-27  4:02   ` zhaoxiu.zeng
2016-03-27  4:02   ` zhaoxiu.zeng
2016-03-27  4:02   ` zhaoxiu.zeng
2016-03-27  4:02   ` zhaoxiu.zeng
2016-03-27  5:43 ` [PATCH 03/31] Add alpha-specific parity functions zhaoxiu.zeng
2016-03-28 18:33   ` Richard Henderson
2016-03-27  5:47 ` [PATCH 04/31] Add avr32-specific " zhaoxiu.zeng
2016-03-28 20:00   ` Hans-Christian Noren Egtvedt
2016-03-27  5:53 ` [PATCH 05/31] Add blackfin-specific " zhaoxiu.zeng
2016-03-27  6:00 ` [PATCH 06/31] Add ia64-specific " zhaoxiu.zeng
2016-03-27  6:00   ` zhaoxiu.zeng
2016-03-27  6:06 ` [PATCH 07/31] Add mips-specific " zhaoxiu.zeng
2016-03-28 17:25   ` David Daney
2016-03-29  2:15     ` Zeng Zhaoxiu
2016-03-27  6:10 ` [PATCH 08/31] Add tile-specific " zhaoxiu.zeng
2016-03-27  6:37 ` [PATCH 09/31] Add powerpc-specific " zhaoxiu.zeng
2016-03-27  6:43 ` [PATCH 10/31] Add sparc-specific " zhaoxiu.zeng
2016-03-27  6:43   ` zhaoxiu.zeng
2016-03-28  2:43   ` David Miller
2016-03-28  2:43     ` David Miller
2016-03-28  5:44     ` Zeng Zhaoxiu
2016-03-28  5:44       ` Zeng Zhaoxiu
2016-03-28 15:29       ` David Miller
2016-03-28 15:29         ` David Miller
2016-03-28 15:37         ` Sam Ravnborg
2016-03-28 15:37           ` Sam Ravnborg
2016-03-28 15:46           ` David Miller
2016-03-28 15:46             ` David Miller
2016-03-27  6:45 ` [PATCH 11/31] Add x86-specific " zhaoxiu.zeng
2016-03-29 12:11   ` One Thousand Gnomes
2016-03-27  6:51 ` [PATCH 12/31] sunrpc: auth_gss: use parity8 zhaoxiu.zeng
2016-03-27  6:51   ` zhaoxiu.zeng
2016-03-27  6:55 ` [PATCH 13/31] mips: use parity functions in cerr-sb1.c zhaoxiu.zeng
2016-03-27  7:01 ` [PATCH 14/31] lib: bch: use parity32 zhaoxiu.zeng
2016-03-27  7:06 ` [PATCH 15/31] media: use parity8 in vivid-vbi-gen.c zhaoxiu.zeng
2016-03-27  7:10 ` [PATCH 16/31] media: saa7115: use parity functions zhaoxiu.zeng
2016-03-27  7:13 ` [PATCH 17/31] input: joystick: use parity32 in grip_mp.c zhaoxiu.zeng
2016-03-27  7:15 ` [PATCH 18/31] input: joystick: use parity64 in sidewinder.c zhaoxiu.zeng
2016-03-27  7:18 ` [PATCH 19/31] input: serio: use parity16 in ams_delta_serio.c zhaoxiu.zeng
2016-03-27  7:20 ` [PATCH 20/31] scsi: use parity32 in isci/phy.c zhaoxiu.zeng
2016-03-27  7:24 ` [PATCH 21/31] mtd: use parity16 in ssfdc.c zhaoxiu.zeng
2016-04-01 23:48   ` Brian Norris
2016-03-27  7:27 ` [PATCH 22/31] mtd: use parity functions in inftlcore.c zhaoxiu.zeng
2016-03-27  7:30 ` [PATCH 23/31] crypto: qat: use parity functions in qat_hal.c zhaoxiu.zeng
2016-03-27  7:33 ` [PATCH 24/31] mtd: use parity16 in sm_ftl.c zhaoxiu.zeng
2016-03-27  7:36 ` [PATCH 25/31] ethernet: use parity8 in sun/niu.c zhaoxiu.zeng
2016-03-28 14:33   ` Michal Nazarewicz
2016-03-27  7:38 ` [PATCH 26/31] input: serio: use parity8 in pcips2.c zhaoxiu.zeng
2016-03-27  7:40 ` [PATCH 27/31] input: serio: use parity8 in sa1111ps2.c zhaoxiu.zeng
2016-03-27  7:42 ` [PATCH 28/31] iio: gyro: use parity32 in adxrs450.c zhaoxiu.zeng
2016-03-28  8:35   ` Jonathan Cameron
2016-03-28  8:50     ` Lars-Peter Clausen
2016-03-27  7:44 ` [PATCH 29/31] serial: use parity32 in max3100.c zhaoxiu.zeng
2016-03-27  7:48 ` [PATCH 30/31] input: mouse: use parity8 in elantech zhaoxiu.zeng
2016-03-27  7:50 ` [PATCH 31/31] ethernet: broadcom: use parity8 in tg3.c zhaoxiu.zeng

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=56F7E24F.3040306@gmail.com \
    --to=zhaoxiu.zeng@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=dvlasenk@redhat.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=martink@posteo.de \
    --cc=mingo@kernel.org \
    --cc=sam@ravnborg.org \
    --cc=sasha.levin@oracle.com \
    --cc=yury.norov@gmail.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.