From: Yury Norov <yury.norov@gmail.com>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@kernel.org>, Jiri Slaby <jirislaby@kernel.org>,
Kuan-Wei Chiu <visitorckw@gmail.com>,
tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
dave.hansen@linux.intel.com, x86@kernel.org, jk@ozlabs.org,
joel@jms.id.au, eajames@linux.ibm.com, andrzej.hajda@intel.com,
neil.armstrong@linaro.org, rfoss@kernel.org,
maarten.lankhorst@linux.intel.com, mripard@kernel.org,
tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch,
dmitry.torokhov@gmail.com, mchehab@kernel.org,
awalls@md.metrocast.net, hverkuil@xs4all.nl,
miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
louis.peens@corigine.com, andrew+netdev@lunn.ch,
davem@davemloft.net, edumazet@google.com, pabeni@redhat.com,
parthiban.veerasooran@microchip.com,
arend.vanspriel@broadcom.com, johannes@sipsolutions.net,
gregkh@linuxfoundation.org, akpm@linux-foundation.org,
alistair@popple.id.au, linux@rasmusvillemoes.dk,
Laurent.pinchart@ideasonboard.com, jonas@kwiboo.se,
jernej.skrabec@gmail.com, kuba@kernel.org,
linux-kernel@vger.kernel.org, linux-fsi@lists.ozlabs.org,
dri-devel@lists.freedesktop.org, linux-input@vger.kernel.org,
linux-media@vger.kernel.org, linux-mtd@lists.infradead.org,
oss-drivers@corigine.com, netdev@vger.kernel.org,
linux-wireless@vger.kernel.org, brcm80211@lists.linux.dev,
brcm80211-dev-list.pdl@broadcom.com,
linux-serial@vger.kernel.org, bpf@vger.kernel.org,
jserv@ccns.ncku.edu.tw, Yu-Chun Lin <eleanor15x@gmail.com>
Subject: Re: [PATCH v3 01/16] bitops: Change parity8() return type to bool
Date: Fri, 7 Mar 2025 14:30:08 -0500 [thread overview]
Message-ID: <Z8tJNt83uVBca0cj@thinkpad> (raw)
In-Reply-To: <04AA7852-2D68-4B3F-9AA7-51AA57E3D23D@zytor.com>
On Fri, Mar 07, 2025 at 04:14:34AM -0800, H. Peter Anvin wrote:
> On March 7, 2025 4:13:26 AM PST, Ingo Molnar <mingo@kernel.org> wrote:
> >
> >* Jiri Slaby <jirislaby@kernel.org> wrote:
> >
> >> On 07. 03. 25, 12:38, Ingo Molnar wrote:
> >> >
> >> > * Jiri Slaby <jirislaby@kernel.org> wrote:
> >> >
> >> > > On 06. 03. 25, 17:25, Kuan-Wei Chiu wrote:
> >> > > > Change return type to bool for better clarity. Update the kernel doc
> >> > > > comment accordingly, including fixing "@value" to "@val" and adjusting
> >> > > > examples. Also mark the function with __attribute_const__ to allow
> >> > > > potential compiler optimizations.
> >> > > >
> >> > > > Co-developed-by: Yu-Chun Lin <eleanor15x@gmail.com>
> >> > > > Signed-off-by: Yu-Chun Lin <eleanor15x@gmail.com>
> >> > > > Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
> >> > > > ---
> >> > > > include/linux/bitops.h | 10 +++++-----
> >> > > > 1 file changed, 5 insertions(+), 5 deletions(-)
> >> > > >
> >> > > > diff --git a/include/linux/bitops.h b/include/linux/bitops.h
> >> > > > index c1cb53cf2f0f..44e5765b8bec 100644
> >> > > > --- a/include/linux/bitops.h
> >> > > > +++ b/include/linux/bitops.h
> >> > > > @@ -231,26 +231,26 @@ static inline int get_count_order_long(unsigned long l)
> >> > > > /**
> >> > > > * parity8 - get the parity of an u8 value
> >> > > > - * @value: the value to be examined
> >> > > > + * @val: the value to be examined
> >> > > > *
> >> > > > * Determine the parity of the u8 argument.
> >> > > > *
> >> > > > * Returns:
> >> > > > - * 0 for even parity, 1 for odd parity
> >> > > > + * false for even parity, true for odd parity
> >> > >
> >> > > This occurs somehow inverted to me. When something is in parity means that
> >> > > it has equal number of 1s and 0s. I.e. return true for even distribution.
> >> > > Dunno what others think? Or perhaps this should be dubbed odd_parity() when
> >> > > bool is returned? Then you'd return true for odd.
> >> >
> >> > OTOH:
> >> >
> >> > - '0' is an even number and is returned for even parity,
> >> > - '1' is an odd number and is returned for odd parity.
> >>
> >> Yes, that used to make sense for me. For bool/true/false, it no longer does.
> >> But as I wrote, it might be only me...
> >
> >No strong opinion on this from me either, I'd guess existing practice
> >with other parity functions should probably control. (If a coherent
> >praxis exists.).
> >
> >Thanks,
> >
> > Ingo
>
> Instead of "bool" think of it as "bit" and it makes more sense
So, to help people thinking that way we can introduce a corresponding
type:
typedef unsigned _BitInt(1) u1;
It already works for clang, and GCC is going to adopt it with std=c23.
We can make u1 an alias to bool for GCC for a while. If you guys like
it, I can send a patch.
For clang it prints quite a nice overflow warning:
tst.c:59:9: warning: implicit conversion from 'int' to 'u1' (aka 'unsigned _BitInt(1)') changes value from 2 to 0 [-Wconstant-conversion]
59 | u1 r = 2;
| ~ ^
Thanks,
Yury
WARNING: multiple messages have this Message-ID (diff)
From: Yury Norov <yury.norov@gmail.com>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@kernel.org>, Jiri Slaby <jirislaby@kernel.org>,
Kuan-Wei Chiu <visitorckw@gmail.com>,
tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
dave.hansen@linux.intel.com, x86@kernel.org, jk@ozlabs.org,
joel@jms.id.au, eajames@linux.ibm.com, andrzej.hajda@intel.com,
neil.armstrong@linaro.org, rfoss@kernel.org,
maarten.lankhorst@linux.intel.com, mripard@kernel.org,
tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch,
dmitry.torokhov@gmail.com, mchehab@kernel.org,
awalls@md.metrocast.net, hverkuil@xs4all.nl,
miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
louis.peens@corigine.com, andrew+netdev@lunn.ch,
davem@davemloft.net, edumazet@google.com, pabeni@redhat.com,
parthiban.veerasooran@microchip.com,
arend.vanspriel@broadcom.com, johannes@sipsolutions.net,
gregkh@linuxfoundation.org, akpm@linux-foundation.org,
alistair@popple.id.au, linux@rasmusvillemoes.dk,
Laurent.pinchart@ideasonboard.com, jonas@kwiboo.se,
jernej.skrabec@gmail.com, kuba@kernel.org,
linux-kernel@vger.kernel.org, linux-fsi@lists.ozlabs.org,
dri-devel@lists.freedesktop.org, linux-input@vger.kernel.org,
linux-media@vger.kernel.org, linux-mtd@lists.infradead.org,
oss-drivers@corigine.com, netdev@vger.kernel.org,
linux-wireless@vger.kernel.org, brcm80211@lists.linux.dev,
brcm80211-dev-list.pdl@broadcom.com,
linux-serial@vger.kernel.org, bpf@vger.kernel.org,
jserv@ccns.ncku.edu.tw, Yu-Chun Lin <eleanor15x@gmail.com>
Subject: Re: [PATCH v3 01/16] bitops: Change parity8() return type to bool
Date: Fri, 7 Mar 2025 14:30:08 -0500 [thread overview]
Message-ID: <Z8tJNt83uVBca0cj@thinkpad> (raw)
In-Reply-To: <04AA7852-2D68-4B3F-9AA7-51AA57E3D23D@zytor.com>
On Fri, Mar 07, 2025 at 04:14:34AM -0800, H. Peter Anvin wrote:
> On March 7, 2025 4:13:26 AM PST, Ingo Molnar <mingo@kernel.org> wrote:
> >
> >* Jiri Slaby <jirislaby@kernel.org> wrote:
> >
> >> On 07. 03. 25, 12:38, Ingo Molnar wrote:
> >> >
> >> > * Jiri Slaby <jirislaby@kernel.org> wrote:
> >> >
> >> > > On 06. 03. 25, 17:25, Kuan-Wei Chiu wrote:
> >> > > > Change return type to bool for better clarity. Update the kernel doc
> >> > > > comment accordingly, including fixing "@value" to "@val" and adjusting
> >> > > > examples. Also mark the function with __attribute_const__ to allow
> >> > > > potential compiler optimizations.
> >> > > >
> >> > > > Co-developed-by: Yu-Chun Lin <eleanor15x@gmail.com>
> >> > > > Signed-off-by: Yu-Chun Lin <eleanor15x@gmail.com>
> >> > > > Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
> >> > > > ---
> >> > > > include/linux/bitops.h | 10 +++++-----
> >> > > > 1 file changed, 5 insertions(+), 5 deletions(-)
> >> > > >
> >> > > > diff --git a/include/linux/bitops.h b/include/linux/bitops.h
> >> > > > index c1cb53cf2f0f..44e5765b8bec 100644
> >> > > > --- a/include/linux/bitops.h
> >> > > > +++ b/include/linux/bitops.h
> >> > > > @@ -231,26 +231,26 @@ static inline int get_count_order_long(unsigned long l)
> >> > > > /**
> >> > > > * parity8 - get the parity of an u8 value
> >> > > > - * @value: the value to be examined
> >> > > > + * @val: the value to be examined
> >> > > > *
> >> > > > * Determine the parity of the u8 argument.
> >> > > > *
> >> > > > * Returns:
> >> > > > - * 0 for even parity, 1 for odd parity
> >> > > > + * false for even parity, true for odd parity
> >> > >
> >> > > This occurs somehow inverted to me. When something is in parity means that
> >> > > it has equal number of 1s and 0s. I.e. return true for even distribution.
> >> > > Dunno what others think? Or perhaps this should be dubbed odd_parity() when
> >> > > bool is returned? Then you'd return true for odd.
> >> >
> >> > OTOH:
> >> >
> >> > - '0' is an even number and is returned for even parity,
> >> > - '1' is an odd number and is returned for odd parity.
> >>
> >> Yes, that used to make sense for me. For bool/true/false, it no longer does.
> >> But as I wrote, it might be only me...
> >
> >No strong opinion on this from me either, I'd guess existing practice
> >with other parity functions should probably control. (If a coherent
> >praxis exists.).
> >
> >Thanks,
> >
> > Ingo
>
> Instead of "bool" think of it as "bit" and it makes more sense
So, to help people thinking that way we can introduce a corresponding
type:
typedef unsigned _BitInt(1) u1;
It already works for clang, and GCC is going to adopt it with std=c23.
We can make u1 an alias to bool for GCC for a while. If you guys like
it, I can send a patch.
For clang it prints quite a nice overflow warning:
tst.c:59:9: warning: implicit conversion from 'int' to 'u1' (aka 'unsigned _BitInt(1)') changes value from 2 to 0 [-Wconstant-conversion]
59 | u1 r = 2;
| ~ ^
Thanks,
Yury
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2025-03-07 19:30 UTC|newest]
Thread overview: 135+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-06 16:25 [PATCH v3 00/16] Introduce and use generic parity16/32/64 helper Kuan-Wei Chiu
2025-03-06 16:25 ` Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 01/16] bitops: Change parity8() return type to bool Kuan-Wei Chiu
2025-03-06 16:25 ` Kuan-Wei Chiu
2025-03-06 20:45 ` David Laight
2025-03-06 20:45 ` David Laight
2025-03-07 6:48 ` Jiri Slaby
2025-03-07 6:48 ` Jiri Slaby
2025-03-07 11:38 ` Ingo Molnar
2025-03-07 11:38 ` Ingo Molnar
2025-03-07 11:42 ` Jiri Slaby
2025-03-07 11:42 ` Jiri Slaby
2025-03-07 12:13 ` Ingo Molnar
2025-03-07 12:13 ` Ingo Molnar
2025-03-07 12:14 ` H. Peter Anvin
2025-03-07 12:14 ` H. Peter Anvin
2025-03-07 19:30 ` Yury Norov [this message]
2025-03-07 19:30 ` Yury Norov
2025-03-07 19:33 ` H. Peter Anvin
2025-03-07 19:33 ` H. Peter Anvin
2025-03-13 16:26 ` Yury Norov
2025-03-13 16:26 ` Yury Norov
2025-03-07 19:36 ` David Laight
2025-03-07 19:36 ` David Laight
2025-03-07 19:39 ` H. Peter Anvin
2025-03-07 19:39 ` H. Peter Anvin
2025-03-12 23:56 ` Jacob Keller
2025-03-12 23:56 ` Jacob Keller
2025-03-13 0:09 ` H. Peter Anvin
2025-03-13 0:09 ` H. Peter Anvin
2025-03-13 16:24 ` Yury Norov
2025-03-13 16:24 ` Yury Norov
2025-03-13 16:36 ` H. Peter Anvin
2025-03-13 16:36 ` H. Peter Anvin
2025-03-13 21:09 ` Jacob Keller
2025-03-13 21:09 ` Jacob Keller
2025-03-14 19:06 ` David Laight
2025-03-14 19:06 ` David Laight
2025-03-15 0:14 ` H. Peter Anvin
2025-03-15 0:14 ` H. Peter Anvin
2025-03-06 16:25 ` [PATCH v3 02/16] bitops: Add parity16(), parity32(), and parity64() helpers Kuan-Wei Chiu
2025-03-06 16:25 ` Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 03/16] media: media/test_drivers: Replace open-coded parity calculation with parity8() Kuan-Wei Chiu
2025-03-06 16:25 ` Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 04/16] media: pci: cx18-av-vbi: " Kuan-Wei Chiu
2025-03-06 16:25 ` Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 05/16] media: saa7115: " Kuan-Wei Chiu
2025-03-06 16:25 ` Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 06/16] serial: max3100: " Kuan-Wei Chiu
2025-03-06 16:25 ` Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 07/16] lib/bch: Replace open-coded parity calculation with parity32() Kuan-Wei Chiu
2025-03-06 16:25 ` Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 08/16] Input: joystick - " Kuan-Wei Chiu
2025-03-06 16:25 ` Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 09/16] net: ethernet: oa_tc6: " Kuan-Wei Chiu
2025-03-06 16:25 ` Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 10/16] wifi: brcm80211: " Kuan-Wei Chiu
2025-03-06 16:25 ` Kuan-Wei Chiu
2025-03-12 9:48 ` kernel test robot
2025-03-06 16:25 ` [PATCH v3 11/16] drm/bridge: dw-hdmi: " Kuan-Wei Chiu
2025-03-06 16:25 ` Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 12/16] mtd: ssfdc: " Kuan-Wei Chiu
2025-03-06 16:25 ` Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 13/16] fsi: i2cr: " Kuan-Wei Chiu
2025-03-06 16:25 ` Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 14/16] fsi: i2cr: Replace open-coded parity calculation with parity64() Kuan-Wei Chiu
2025-03-06 16:25 ` Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 15/16] Input: joystick - " Kuan-Wei Chiu
2025-03-06 16:25 ` Kuan-Wei Chiu
2025-03-06 16:25 ` [PATCH v3 16/16] nfp: bpf: " Kuan-Wei Chiu
2025-03-06 16:25 ` Kuan-Wei Chiu
2025-03-07 3:08 ` [PATCH v3 00/16] Introduce and use generic parity16/32/64 helper H. Peter Anvin
2025-03-07 3:08 ` H. Peter Anvin
2025-03-07 18:49 ` Andrew Cooper
2025-03-07 18:49 ` Andrew Cooper
2025-03-07 19:30 ` H. Peter Anvin
2025-03-07 19:30 ` H. Peter Anvin
2025-03-07 19:53 ` David Laight
2025-03-07 19:53 ` David Laight
2025-03-07 20:07 ` H. Peter Anvin
2025-03-07 20:07 ` H. Peter Anvin
2025-03-09 15:48 ` Kuan-Wei Chiu
2025-03-09 15:48 ` Kuan-Wei Chiu
2025-03-09 16:00 ` H. Peter Anvin
2025-03-09 16:00 ` H. Peter Anvin
2025-03-09 17:42 ` Jiri Slaby
2025-03-09 17:42 ` Jiri Slaby
2025-03-11 22:01 ` Yury Norov
2025-03-11 22:01 ` Yury Norov
2025-03-11 22:24 ` H. Peter Anvin
2025-03-11 22:24 ` H. Peter Anvin
2025-03-12 15:51 ` Yury Norov
2025-03-12 15:51 ` Yury Norov
2025-03-12 16:29 ` Kuan-Wei Chiu
2025-03-12 16:29 ` Kuan-Wei Chiu
2025-03-13 7:41 ` Kuan-Wei Chiu
2025-03-13 7:41 ` Kuan-Wei Chiu
2025-03-23 15:16 ` Kuan-Wei Chiu
2025-03-23 15:16 ` Kuan-Wei Chiu
2025-03-23 22:40 ` H. Peter Anvin
2025-03-23 22:40 ` H. Peter Anvin
2025-03-24 15:53 ` Yury Norov
2025-03-24 15:53 ` Yury Norov
2025-03-29 16:00 ` Kuan-Wei Chiu
2025-03-29 16:00 ` Kuan-Wei Chiu
2025-03-25 19:43 ` H. Peter Anvin
2025-03-25 19:43 ` H. Peter Anvin
2025-04-03 14:39 ` Kuan-Wei Chiu
2025-04-03 14:39 ` Kuan-Wei Chiu
2025-04-03 16:14 ` Yury Norov
2025-04-03 16:14 ` Yury Norov
2025-04-03 16:54 ` Kuan-Wei Chiu
2025-04-03 16:54 ` Kuan-Wei Chiu
2025-04-04 2:51 ` Jeremy Kerr
2025-04-04 2:51 ` Jeremy Kerr
2025-04-04 8:46 ` Kuan-Wei Chiu
2025-04-04 8:46 ` Kuan-Wei Chiu
2025-04-04 9:01 ` Jeremy Kerr
2025-04-04 9:01 ` Jeremy Kerr
2025-04-04 8:47 ` Kuan-Wei Chiu
2025-04-04 8:47 ` Kuan-Wei Chiu
2025-03-07 3:14 ` H. Peter Anvin
2025-03-07 3:14 ` H. Peter Anvin
2025-03-07 9:19 ` Kuan-Wei Chiu
2025-03-07 9:19 ` Kuan-Wei Chiu
2025-03-07 10:52 ` Jiri Slaby
2025-03-07 10:52 ` Jiri Slaby
2025-03-07 6:57 ` Jiri Slaby
2025-03-07 6:57 ` Jiri Slaby
2025-03-07 9:22 ` Kuan-Wei Chiu
2025-03-07 9:22 ` Kuan-Wei Chiu
2025-03-07 15:55 ` Yury Norov
2025-03-07 15:55 ` Yury Norov
2025-03-07 18:30 ` Kuan-Wei Chiu
2025-03-07 18:30 ` Kuan-Wei Chiu
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=Z8tJNt83uVBca0cj@thinkpad \
--to=yury.norov@gmail.com \
--cc=Laurent.pinchart@ideasonboard.com \
--cc=airlied@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=alistair@popple.id.au \
--cc=andrew+netdev@lunn.ch \
--cc=andrzej.hajda@intel.com \
--cc=arend.vanspriel@broadcom.com \
--cc=awalls@md.metrocast.net \
--cc=bp@alien8.de \
--cc=bpf@vger.kernel.org \
--cc=brcm80211-dev-list.pdl@broadcom.com \
--cc=brcm80211@lists.linux.dev \
--cc=dave.hansen@linux.intel.com \
--cc=davem@davemloft.net \
--cc=dmitry.torokhov@gmail.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=eajames@linux.ibm.com \
--cc=edumazet@google.com \
--cc=eleanor15x@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=hpa@zytor.com \
--cc=hverkuil@xs4all.nl \
--cc=jernej.skrabec@gmail.com \
--cc=jirislaby@kernel.org \
--cc=jk@ozlabs.org \
--cc=joel@jms.id.au \
--cc=johannes@sipsolutions.net \
--cc=jonas@kwiboo.se \
--cc=jserv@ccns.ncku.edu.tw \
--cc=kuba@kernel.org \
--cc=linux-fsi@lists.ozlabs.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux-serial@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=louis.peens@corigine.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mchehab@kernel.org \
--cc=mingo@kernel.org \
--cc=mingo@redhat.com \
--cc=miquel.raynal@bootlin.com \
--cc=mripard@kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=netdev@vger.kernel.org \
--cc=oss-drivers@corigine.com \
--cc=pabeni@redhat.com \
--cc=parthiban.veerasooran@microchip.com \
--cc=rfoss@kernel.org \
--cc=richard@nod.at \
--cc=simona@ffwll.ch \
--cc=tglx@linutronix.de \
--cc=tzimmermann@suse.de \
--cc=vigneshr@ti.com \
--cc=visitorckw@gmail.com \
--cc=x86@kernel.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.