All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andy.shevchenko@gmail.com>
To: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	William Breathitt Gray <vilhelm.gray@gmail.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Bartosz Golaszewski <bgolaszewski@baylibre.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-arch <linux-arch@vger.kernel.org>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	Linux PM mailing list <linux-pm@vger.kernel.org>,
	Phil Reid <preid@electromag.com.au>,
	Lukas Wunner <lukas@wunner.de>,
	sean.nyekjaer@prevas.dk, morten.tiljeset@prevas.dk,
	Arnd Bergmann <arnd@arndb.de>
Subject: Re: [PATCH v17 01/14] bitops: Introduce the for_each_set_clump8 macro
Date: Thu, 10 Oct 2019 08:49:10 +0300	[thread overview]
Message-ID: <CAHp75VeLkfNZkqhD8tedJdav81L+VA3Z50Kwcd9h4R7zMwjtvA@mail.gmail.com> (raw)
In-Reply-To: <CAK7LNASVdqU_6+_iinWStb9ALqLw494pnZKr46fLW+WJ9nUo6A@mail.gmail.com>

On Thu, Oct 10, 2019 at 5:31 AM Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
> On Thu, Oct 10, 2019 at 3:54 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > On Wed, Oct 9, 2019 at 7:09 PM Andy Shevchenko
> > <andriy.shevchenko@linux.intel.com> wrote:
> > > On Thu, Oct 10, 2019 at 01:28:08AM +0900, Masahiro Yamada wrote:
> > > > On Thu, Oct 10, 2019 at 12:27 AM William Breathitt Gray
> > > > <vilhelm.gray@gmail.com> wrote:
> > > > >
> > > > > This macro iterates for each 8-bit group of bits (clump) with set bits,
> > > > > within a bitmap memory region. For each iteration, "start" is set to the
> > > > > bit offset of the found clump, while the respective clump value is
> > > > > stored to the location pointed by "clump". Additionally, the
> > > > > bitmap_get_value8 and bitmap_set_value8 functions are introduced to
> > > > > respectively get and set an 8-bit value in a bitmap memory region.
> > >
> > > > Why is the return type "unsigned long" where you know
> > > > it return the 8-bit value ?
> > >
> > > Because bitmap API operates on unsigned long type. This is not only
> > > consistency, but for sake of flexibility in case we would like to introduce
> > > more calls like clump16 or so.
> >
> > TBH, that doesn't convince me: those functions explicitly take/return an
> > 8-bit value, and have "8" in their name.  The 8-bit value is never
> > really related to, retrieved from, or stored in a full "unsigned long"
> > element of a bitmap, only to/from/in a part (byte) of it.
> >
> > Following your rationale, all of iowrite{8,16,32,64}*() should take an
> > "unsigned long" value, too.
> >
>
> +1
>
> Using u8/u16/u32/u64 looks more consistent with other bitmap helpers.
>
> void bitmap_from_arr32(unsigned long *bitmap, const u32 *buf, unsigned
> int nbits);
> void bitmap_to_arr32(u32 *buf, const unsigned long *bitmap, unsigned int nbits);
> static inline void bitmap_from_u64(unsigned long *dst, u64 mask);
>
>
>
> If you want to see more examples from other parts,

Geert's and yours examples both are not related. They are about
fixed-width properies when we know that is the part of protocol.
Here we have no protocol which stricts us to the mentioned fixed-width types.

So, I can tell an opposite, your arguments didn't convince me.

Imagine the function which does an or / and / xor operation on bitmap.
Now, when I supply unsigned long, I will see
operations on one type in _one_ function independently of the size.
Your proposal will make an unneded churn.

-- 
With Best Regards,
Andy Shevchenko

WARNING: multiple messages have this Message-ID (diff)
From: Andy Shevchenko <andy.shevchenko@gmail.com>
To: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: linux-arch <linux-arch@vger.kernel.org>,
	Phil Reid <preid@electromag.com.au>,
	Arnd Bergmann <arnd@arndb.de>,
	"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Linux PM mailing list <linux-pm@vger.kernel.org>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>,
	William Breathitt Gray <vilhelm.gray@gmail.com>,
	morten.tiljeset@prevas.dk,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Bartosz Golaszewski <bgolaszewski@baylibre.com>,
	Lukas Wunner <lukas@wunner.de>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	sean.nyekjaer@prevas.dk,
	Andrew Morton <akpm@linux-foundation.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v17 01/14] bitops: Introduce the for_each_set_clump8 macro
Date: Thu, 10 Oct 2019 08:49:10 +0300	[thread overview]
Message-ID: <CAHp75VeLkfNZkqhD8tedJdav81L+VA3Z50Kwcd9h4R7zMwjtvA@mail.gmail.com> (raw)
In-Reply-To: <CAK7LNASVdqU_6+_iinWStb9ALqLw494pnZKr46fLW+WJ9nUo6A@mail.gmail.com>

On Thu, Oct 10, 2019 at 5:31 AM Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
> On Thu, Oct 10, 2019 at 3:54 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > On Wed, Oct 9, 2019 at 7:09 PM Andy Shevchenko
> > <andriy.shevchenko@linux.intel.com> wrote:
> > > On Thu, Oct 10, 2019 at 01:28:08AM +0900, Masahiro Yamada wrote:
> > > > On Thu, Oct 10, 2019 at 12:27 AM William Breathitt Gray
> > > > <vilhelm.gray@gmail.com> wrote:
> > > > >
> > > > > This macro iterates for each 8-bit group of bits (clump) with set bits,
> > > > > within a bitmap memory region. For each iteration, "start" is set to the
> > > > > bit offset of the found clump, while the respective clump value is
> > > > > stored to the location pointed by "clump". Additionally, the
> > > > > bitmap_get_value8 and bitmap_set_value8 functions are introduced to
> > > > > respectively get and set an 8-bit value in a bitmap memory region.
> > >
> > > > Why is the return type "unsigned long" where you know
> > > > it return the 8-bit value ?
> > >
> > > Because bitmap API operates on unsigned long type. This is not only
> > > consistency, but for sake of flexibility in case we would like to introduce
> > > more calls like clump16 or so.
> >
> > TBH, that doesn't convince me: those functions explicitly take/return an
> > 8-bit value, and have "8" in their name.  The 8-bit value is never
> > really related to, retrieved from, or stored in a full "unsigned long"
> > element of a bitmap, only to/from/in a part (byte) of it.
> >
> > Following your rationale, all of iowrite{8,16,32,64}*() should take an
> > "unsigned long" value, too.
> >
>
> +1
>
> Using u8/u16/u32/u64 looks more consistent with other bitmap helpers.
>
> void bitmap_from_arr32(unsigned long *bitmap, const u32 *buf, unsigned
> int nbits);
> void bitmap_to_arr32(u32 *buf, const unsigned long *bitmap, unsigned int nbits);
> static inline void bitmap_from_u64(unsigned long *dst, u64 mask);
>
>
>
> If you want to see more examples from other parts,

Geert's and yours examples both are not related. They are about
fixed-width properies when we know that is the part of protocol.
Here we have no protocol which stricts us to the mentioned fixed-width types.

So, I can tell an opposite, your arguments didn't convince me.

Imagine the function which does an or / and / xor operation on bitmap.
Now, when I supply unsigned long, I will see
operations on one type in _one_ function independently of the size.
Your proposal will make an unneded churn.

-- 
With Best Regards,
Andy Shevchenko

WARNING: multiple messages have this Message-ID (diff)
From: Andy Shevchenko <andy.shevchenko@gmail.com>
To: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: linux-arch <linux-arch@vger.kernel.org>,
	Phil Reid <preid@electromag.com.au>,
	Arnd Bergmann <arnd@arndb.de>,
	"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Linux PM mailing list <linux-pm@vger.kernel.org>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>,
	William Breathitt Gray <vilhelm.gray@gmail.com>,
	morten.tiljeset@prevas.dk,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Bartosz Golaszewski <bgolaszewski@baylibre.com>,
	Lukas Wunner <lukas@wunner.de>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	sean.nyekjaer@prevas.dk,
	Andrew Morton <akpm@linux-foundation.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v17 01/14] bitops: Introduce the for_each_set_clump8 macro
Date: Thu, 10 Oct 2019 08:49:10 +0300	[thread overview]
Message-ID: <CAHp75VeLkfNZkqhD8tedJdav81L+VA3Z50Kwcd9h4R7zMwjtvA@mail.gmail.com> (raw)
In-Reply-To: <CAK7LNASVdqU_6+_iinWStb9ALqLw494pnZKr46fLW+WJ9nUo6A@mail.gmail.com>

On Thu, Oct 10, 2019 at 5:31 AM Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
> On Thu, Oct 10, 2019 at 3:54 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > On Wed, Oct 9, 2019 at 7:09 PM Andy Shevchenko
> > <andriy.shevchenko@linux.intel.com> wrote:
> > > On Thu, Oct 10, 2019 at 01:28:08AM +0900, Masahiro Yamada wrote:
> > > > On Thu, Oct 10, 2019 at 12:27 AM William Breathitt Gray
> > > > <vilhelm.gray@gmail.com> wrote:
> > > > >
> > > > > This macro iterates for each 8-bit group of bits (clump) with set bits,
> > > > > within a bitmap memory region. For each iteration, "start" is set to the
> > > > > bit offset of the found clump, while the respective clump value is
> > > > > stored to the location pointed by "clump". Additionally, the
> > > > > bitmap_get_value8 and bitmap_set_value8 functions are introduced to
> > > > > respectively get and set an 8-bit value in a bitmap memory region.
> > >
> > > > Why is the return type "unsigned long" where you know
> > > > it return the 8-bit value ?
> > >
> > > Because bitmap API operates on unsigned long type. This is not only
> > > consistency, but for sake of flexibility in case we would like to introduce
> > > more calls like clump16 or so.
> >
> > TBH, that doesn't convince me: those functions explicitly take/return an
> > 8-bit value, and have "8" in their name.  The 8-bit value is never
> > really related to, retrieved from, or stored in a full "unsigned long"
> > element of a bitmap, only to/from/in a part (byte) of it.
> >
> > Following your rationale, all of iowrite{8,16,32,64}*() should take an
> > "unsigned long" value, too.
> >
>
> +1
>
> Using u8/u16/u32/u64 looks more consistent with other bitmap helpers.
>
> void bitmap_from_arr32(unsigned long *bitmap, const u32 *buf, unsigned
> int nbits);
> void bitmap_to_arr32(u32 *buf, const unsigned long *bitmap, unsigned int nbits);
> static inline void bitmap_from_u64(unsigned long *dst, u64 mask);
>
>
>
> If you want to see more examples from other parts,

Geert's and yours examples both are not related. They are about
fixed-width properies when we know that is the part of protocol.
Here we have no protocol which stricts us to the mentioned fixed-width types.

So, I can tell an opposite, your arguments didn't convince me.

Imagine the function which does an or / and / xor operation on bitmap.
Now, when I supply unsigned long, I will see
operations on one type in _one_ function independently of the size.
Your proposal will make an unneded churn.

-- 
With Best Regards,
Andy Shevchenko

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-10-10  5:49 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-09 15:26 [PATCH v17 00/14] Introduce the for_each_set_clump8 macro William Breathitt Gray
2019-10-09 15:26 ` William Breathitt Gray
2019-10-09 15:26 ` William Breathitt Gray
2019-10-09 15:26 ` [PATCH v17 01/14] bitops: " William Breathitt Gray
2019-10-09 15:26   ` William Breathitt Gray
2019-10-09 15:26   ` William Breathitt Gray
2019-10-09 16:28   ` Masahiro Yamada
2019-10-09 16:28     ` Masahiro Yamada
2019-10-09 16:28     ` Masahiro Yamada
2019-10-09 17:02     ` William Breathitt Gray
2019-10-09 17:02       ` William Breathitt Gray
2019-10-09 17:09     ` Andy Shevchenko
2019-10-09 17:09       ` Andy Shevchenko
2019-10-09 18:54       ` Geert Uytterhoeven
2019-10-09 18:54         ` Geert Uytterhoeven
2019-10-10  2:28         ` Masahiro Yamada
2019-10-10  2:28           ` Masahiro Yamada
2019-10-10  5:49           ` Andy Shevchenko [this message]
2019-10-10  5:49             ` Andy Shevchenko
2019-10-10  5:49             ` Andy Shevchenko
2019-10-10  6:29             ` Geert Uytterhoeven
2019-10-10  6:29               ` Geert Uytterhoeven
2019-10-10  7:41               ` Andy Shevchenko
2019-10-10  7:41                 ` Andy Shevchenko
2019-10-10  7:49                 ` Geert Uytterhoeven
2019-10-10  7:49                   ` Geert Uytterhoeven
2019-10-10  8:07                   ` Andy Shevchenko
2019-10-10  8:07                     ` Andy Shevchenko
2019-10-10  8:21                     ` Geert Uytterhoeven
2019-10-10  8:21                       ` Geert Uytterhoeven
2019-10-10 13:12                       ` William Breathitt Gray
2019-10-10 13:12                         ` William Breathitt Gray
2019-10-09 15:26 ` William Breathitt Gray
2019-10-09 15:27 ` [PATCH v17 02/14] lib/test_bitmap.c: Add for_each_set_clump8 test cases William Breathitt Gray
2019-10-09 15:27 ` William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27 ` [PATCH v17 03/14] gpio: 104-dio-48e: Utilize for_each_set_clump8 macro William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27 ` [PATCH v17 04/14] gpio: 104-idi-48: " William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27 ` William Breathitt Gray
2019-10-09 15:27 ` [PATCH v17 05/14] gpio: gpio-mm: " William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27 ` [PATCH v17 06/14] gpio: ws16c48: " William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27 ` [PATCH v17 07/14] gpio: pci-idio-16: " William Breathitt Gray
2019-10-09 15:27 ` William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27 ` [PATCH v17 08/14] gpio: pcie-idio-24: " William Breathitt Gray
2019-10-09 15:27 ` William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27 ` [PATCH v17 09/14] gpio: uniphier: " William Breathitt Gray
2019-10-09 15:27 ` William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 16:33   ` Masahiro Yamada
2019-10-09 16:33     ` Masahiro Yamada
2019-10-09 16:33     ` Masahiro Yamada
2019-10-09 17:05     ` William Breathitt Gray
2019-10-09 17:05       ` William Breathitt Gray
2019-10-09 15:27 ` [PATCH v17 10/14] gpio: 74x164: Utilize the " William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27 ` William Breathitt Gray
2019-10-09 15:27 ` [PATCH v17 11/14] thermal: intel: intel_soc_dts_iosf: Utilize " William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27 ` [PATCH v17 12/14] gpio: pisosr: Utilize the " William Breathitt Gray
2019-10-09 15:27 ` William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27 ` [PATCH v17 13/14] gpio: max3191x: " William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27 ` William Breathitt Gray
2019-10-09 15:27 ` [PATCH v17 14/14] gpio: pca953x: " William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27   ` William Breathitt Gray
2019-10-09 15:27 ` William Breathitt Gray

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=CAHp75VeLkfNZkqhD8tedJdav81L+VA3Z50Kwcd9h4R7zMwjtvA@mail.gmail.com \
    --to=andy.shevchenko@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=arnd@arndb.de \
    --cc=bgolaszewski@baylibre.com \
    --cc=geert@linux-m68k.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=lukas@wunner.de \
    --cc=morten.tiljeset@prevas.dk \
    --cc=preid@electromag.com.au \
    --cc=sean.nyekjaer@prevas.dk \
    --cc=vilhelm.gray@gmail.com \
    --cc=yamada.masahiro@socionext.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.