Re: Surprising 64-bit performance anomaly (was Re: [PATCH] random: use an improved fast_mix() function)

From: Theodore Ts'o
Date: Sat Jun 14 2014 - 23:19:31 EST


On Sat, Jun 14, 2014 at 11:04:41PM -0400, Theodore Ts'o wrote:
> Hi George,
>
> On top of the above patch, I applied the following to add 64-bit pool
> support. I had to use a union to avoid type punning warnings.
>
> When building a 64-bit kernel and running under under KVM, I'm finding
> that the 64-bit mix function which you suggested is twice as slow.
>
> Using the (new) 32-bit function:
>
> 31821 23970
> 31629 24366
> 30856 24182
>
> Using the 64-bit mixing function:
>
> 60438 44369
> 60820 45402
> 58778 45419

I'm now getting a different set of timing numbers for the 64-bit
mixing function. As before the first number is the weighted moving
average; the second is the deviation:

48035 34322
47452 34413
46974 34350

I'm not sure why I'm getting slightly better figures now, but it's
still worse than the 32-bit fast_mix3() algorithm. Also, given the
additional complexity I'm not sure it's worth it to have a different
mixing algorithm for 64-bit platforms, unless it's significantly
better, and right now, I'm seeing numbers which are about 50% worse,
at least on my test platform.

- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/