Hi Andrew, Can you please accept these patches? They are simple yet provide a good performance improvement. Timofey has been resending them for a while. Thank you, Pasha On 18-10-23 21:25:53, Timofey Titovets wrote: > xxh32() - fast on both 32/64-bit platforms > xxh64() - fast only on 64-bit platform > > Create xxhash() which will pickup fastest version > on compile time. > > As result depends on cpu word size, > the main proporse of that - in memory hashing. > > Changes: > v2: > - Create that patch > v3 -> v8: > - Nothing, whole patchset version bump > > Signed-off-by: Timofey Titovets <nefelim4ag@xxxxxxxxx> > Reviewed-by: Pavel Tatashin <pavel.tatashin@xxxxxxxxxxxxx> > Reviewed-by: Mike Rapoport <rppt@xxxxxxxxxxxxxxxxxx> > > CC: Andrea Arcangeli <aarcange@xxxxxxxxxx> > CC: linux-mm@xxxxxxxxx > CC: kvm@xxxxxxxxxxxxxxx > CC: leesioh <solee@xxxxxxxxxxxxxx> > --- > include/linux/xxhash.h | 23 +++++++++++++++++++++++ > 1 file changed, 23 insertions(+) > > diff --git a/include/linux/xxhash.h b/include/linux/xxhash.h > index 9e1f42cb57e9..52b073fea17f 100644 > --- a/include/linux/xxhash.h > +++ b/include/linux/xxhash.h > @@ -107,6 +107,29 @@ uint32_t xxh32(const void *input, size_t length, uint32_t seed); > */ > uint64_t xxh64(const void *input, size_t length, uint64_t seed); > > +/** > + * xxhash() - calculate wordsize hash of the input with a given seed > + * @input: The data to hash. > + * @length: The length of the data to hash. > + * @seed: The seed can be used to alter the result predictably. > + * > + * If the hash does not need to be comparable between machines with > + * different word sizes, this function will call whichever of xxh32() > + * or xxh64() is faster. > + * > + * Return: wordsize hash of the data. > + */ > + > +static inline unsigned long xxhash(const void *input, size_t length, > + uint64_t seed) > +{ > +#if BITS_PER_LONG == 64 > + return xxh64(input, length, seed); > +#else > + return xxh32(input, length, seed); > +#endif > +} > + > /*-**************************** > * Streaming Hash Functions > *****************************/ > -- > 2.19.0 >