All of lore.kernel.org
 help / color / mirror / Atom feed
From: Isabella B do Amaral <isabellabdoamaral@usp.br>
To: David Gow <davidgow@google.com>
Cc: "Geert Uytterhoeven" <geert@linux-m68k.org>,
	"Enzo Ferreira" <ferreiraenzoa@gmail.com>,
	"Augusto Durães Camargo" <augusto.duraes33@gmail.com>,
	"Brendan Higgins" <brendanhiggins@google.com>,
	"Daniel Latypov" <dlatypov@google.com>,
	"open list:KERNEL SELFTEST FRAMEWORK"
	<linux-kselftest@vger.kernel.org>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	"KUnit Development" <kunit-dev@googlegroups.com>,
	~lkcamp/patches@lists.sr.ht,
	"Rodrigo Siqueira" <rodrigosiqueiramelo@gmail.com>
Subject: Re: [PATCH v2 1/5] hash.h: remove unused define directive
Date: Thu, 28 Oct 2021 12:46:55 -0300	[thread overview]
Message-ID: <CAAniXFSgtYP3OFqTNmfRQg0kUtJb3oztT8od9XnMdj+LMNwNKA@mail.gmail.com> (raw)
In-Reply-To: <CABVgOS=Ux00jm9Qiy-u0zhhHUBpmXQCsnFdr=sEU-1q1XBWM7w@mail.gmail.com>

Hi, David,

On Sat, Oct 2, 2021 at 4:20 AM David Gow <davidgow@google.com> wrote:
>
> On Mon, Sep 27, 2021 at 6:33 AM Isabella Basso <isabellabdoamaral@usp.br> wrote:
> >
> > Currently, there exist hash_32() and __hash_32() functions, which were
> > introduced in a patch [1] targeting architecture specific optimizations.
> > These functions can be overridden on a per-architecture basis to achieve
> > such optimizations. They must set their corresponding define directive
> > (HAVE_ARCH_HASH_32 and HAVE_ARCH__HASH_32, respectively) so that header
> > files can deal with these overrides properly.
> >
> > As the supported 32-bit architectures that have their own hash function
> > implementation (i.e. m68k, Microblaze, H8/300, pa-risc) have only been
> > making use of the (more general) __hash_32() function (which only lacks
> > a right shift operation when compared to the hash_32() function),
> > remove the define directive corresponding to the arch-specific hash_32()
> > implementation.
> >
> > [1] https://lore.kernel.org/lkml/20160525073311.5600.qmail@ns.sciencehorizons.net/
> >
> > Changes since v1:
> > - As suggested by David Gow:
> >   1. Reword commit message.
>
> Maybe move this changelog to below the "---", so it doesn't show up in
> the final commit message?

Oh, okay! Thanks for pointing that out :) I didn't quite know how I
should put these.

>
> >
> > Tested-by: David Gow <davidgow@google.com>
> > Co-developed-by: Augusto Durães Camargo <augusto.duraes33@gmail.com>
> > Signed-off-by: Augusto Durães Camargo <augusto.duraes33@gmail.com>
> > Co-developed-by: Enzo Ferreira <ferreiraenzoa@gmail.com>
> > Signed-off-by: Enzo Ferreira <ferreiraenzoa@gmail.com>
> > Signed-off-by: Isabella Basso <isabellabdoamaral@usp.br>
> > ---
>
> This looks sensible enough to me. Since no-one seems to be speaking up
> in architecture-specific hash_32()'s defence, let's get rid of it.
>
> Reviewed-by: David Gow <davidgow@google.com>
>

Alright! Thanks for the review.

Cheers,
--
Isabella B.

>
> >  include/linux/hash.h       |  5 +----
> >  lib/test_hash.c            | 24 +-----------------------
> >  tools/include/linux/hash.h |  5 +----
> >  3 files changed, 3 insertions(+), 31 deletions(-)
> >
> > diff --git a/include/linux/hash.h b/include/linux/hash.h
> > index ad6fa21d977b..38edaa08f862 100644
> > --- a/include/linux/hash.h
> > +++ b/include/linux/hash.h
> > @@ -62,10 +62,7 @@ static inline u32 __hash_32_generic(u32 val)
> >         return val * GOLDEN_RATIO_32;
> >  }
> >
> > -#ifndef HAVE_ARCH_HASH_32
> > -#define hash_32 hash_32_generic
> > -#endif
> > -static inline u32 hash_32_generic(u32 val, unsigned int bits)
> > +static inline u32 hash_32(u32 val, unsigned int bits)
> >  {
> >         /* High bits are more random, so use them. */
> >         return __hash_32(val) >> (32 - bits);
> > diff --git a/lib/test_hash.c b/lib/test_hash.c
> > index 0ee40b4a56dd..d4b0cfdb0377 100644
> > --- a/lib/test_hash.c
> > +++ b/lib/test_hash.c
> > @@ -94,22 +94,7 @@ test_int_hash(unsigned long long h64, u32 hash_or[2][33])
> >                         pr_err("hash_32(%#x, %d) = %#x > %#x", h0, k, h1, m);
> >                         return false;
> >                 }
> > -#ifdef HAVE_ARCH_HASH_32
> > -               h2 = hash_32_generic(h0, k);
> > -#if HAVE_ARCH_HASH_32 == 1
> > -               if (h1 != h2) {
> > -                       pr_err("hash_32(%#x, %d) = %#x != hash_32_generic() "
> > -                               " = %#x", h0, k, h1, h2);
> > -                       return false;
> > -               }
> > -#else
> > -               if (h2 > m) {
> > -                       pr_err("hash_32_generic(%#x, %d) = %#x > %#x",
> > -                               h0, k, h1, m);
> > -                       return false;
> > -               }
> > -#endif
> > -#endif
> > +
> >                 /* Test hash_64 */
> >                 hash_or[1][k] |= h1 = hash_64(h64, k);
> >                 if (h1 > m) {
> > @@ -227,13 +212,6 @@ test_hash_init(void)
> >  #else
> >         pr_info("__hash_32() has no arch implementation to test.");
> >  #endif
> > -#ifdef HAVE_ARCH_HASH_32
> > -#if HAVE_ARCH_HASH_32 != 1
> > -       pr_info("hash_32() is arch-specific; not compared to generic.");
> > -#endif
> > -#else
> > -       pr_info("hash_32() has no arch implementation to test.");
> > -#endif
> >  #ifdef HAVE_ARCH_HASH_64
> >  #if HAVE_ARCH_HASH_64 != 1
> >         pr_info("hash_64() is arch-specific; not compared to generic.");
> > diff --git a/tools/include/linux/hash.h b/tools/include/linux/hash.h
> > index ad6fa21d977b..38edaa08f862 100644
> > --- a/tools/include/linux/hash.h
> > +++ b/tools/include/linux/hash.h
> > @@ -62,10 +62,7 @@ static inline u32 __hash_32_generic(u32 val)
> >         return val * GOLDEN_RATIO_32;
> >  }
> >
> > -#ifndef HAVE_ARCH_HASH_32
> > -#define hash_32 hash_32_generic
> > -#endif
> > -static inline u32 hash_32_generic(u32 val, unsigned int bits)
> > +static inline u32 hash_32(u32 val, unsigned int bits)
> >  {
> >         /* High bits are more random, so use them. */
> >         return __hash_32(val) >> (32 - bits);
> > --
> > 2.33.0
> >

  reply	other threads:[~2021-10-28 15:47 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-26 22:33 [PATCH v2 0/5] test_hash.c: refactor into KUnit Isabella Basso
2021-09-26 22:33 ` [PATCH v2 1/5] hash.h: remove unused define directive Isabella Basso
2021-10-02  7:19   ` David Gow
2021-10-28 15:46     ` Isabella B do Amaral [this message]
2021-09-26 22:33 ` [PATCH v2 2/5] test_hash.c: split test_int_hash into arch-specific functions Isabella Basso
2021-10-02  7:20   ` David Gow
2021-10-28 15:48     ` Isabella B do Amaral
2021-09-26 22:33 ` [PATCH v2 3/5] test_hash.c: split test_hash_init Isabella Basso
2021-09-27  8:17   ` Marco Elver
2021-09-27 12:02     ` Isabella B do Amaral
2021-09-27 12:27       ` Marco Elver
2021-10-02  7:20   ` David Gow
2021-09-26 22:33 ` [PATCH v2 4/5] lib/Kconfig.debug: properly split hash test kernel entries Isabella Basso
2021-10-02  7:22   ` David Gow
2021-09-26 22:33 ` [PATCH v2 5/5] test_hash.c: refactor into kunit Isabella Basso
2021-10-02  7:22   ` David Gow
2021-10-28 21:09     ` Isabella B do Amaral
2021-10-02  7:29 ` [PATCH v2 0/5] test_hash.c: refactor into KUnit David Gow
2021-10-05 21:19   ` Brendan Higgins
2021-10-28 16:48     ` Isabella B do Amaral

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=CAAniXFSgtYP3OFqTNmfRQg0kUtJb3oztT8od9XnMdj+LMNwNKA@mail.gmail.com \
    --to=isabellabdoamaral@usp.br \
    --cc=augusto.duraes33@gmail.com \
    --cc=brendanhiggins@google.com \
    --cc=davidgow@google.com \
    --cc=dlatypov@google.com \
    --cc=ferreiraenzoa@gmail.com \
    --cc=geert@linux-m68k.org \
    --cc=kunit-dev@googlegroups.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=rodrigosiqueiramelo@gmail.com \
    --cc=~lkcamp/patches@lists.sr.ht \
    /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.