CFR: unifing sha256 userland/kernel implementation...
John-Mark Gurney
jmg at funkthat.com
Wed Feb 12 00:39:09 UTC 2014
John-Mark Gurney wrote this message on Tue, Feb 11, 2014 at 10:56 -0800:
> I did some performance testing on sha256, and found that the libmd
> version is significantly faster, ~20%, than the kernel version. Even
> if you enable SHA2_UNROLL_TRANSFORM (which isn't the default), the
> version in libmd is still faster.
>
> So, this patch moves libmd's sha256c.c and sha256.h into the kernel,
> and adapts the userland to pull the version from the kernel. This
> change removes sha256 from the existing sha2.c file, and does some
> minor cleanup of types in sha2.
>
> I have tested this w/ ZFS using sha256 checksums, and a ZFS made
> pre-patch is read fine by a kernel post patch. I have also run
> the tests in lib/libmd and they all pass fine. Passes
> buildworld/buildkernel/installkernel/reboot/installworld/reboot/test.
>
> Patch:
> https://www.funkthat.com/~jmg/sha256.kern.patch
>
> Following stats are in seconds to digest 100000 10000-byte blocks,
> calculated using sha256 -t:
> $ ministat soft.times kernsoft.times
> x soft.times
> + kernsoft.times
> +------------------------------------------------------------------------------+
> |x xx xx +++ + +|
> | |___________AM_________| |_______M_____A______________| |
> +------------------------------------------------------------------------------+
> N Min Max Median Avg Stddev
> x 5 6.775387 8.279581 7.848128 7.792094 0.60912664
> + 5 8.997429 10.768921 9.090787 9.4359144 0.75040822
> Difference at 95.0% confidence
> 1.64382 +/- 0.99674
> 21.096% +/- 12.7917%
> (Student's t, pooled s = 0.683428)
>
> This is in preperation of bringing in an SSE4 accelerated version of
> sha256 (for both userland and kernel) that sees a 2x performance
> increase.
Sorry, security@ != freebsd-security at ... This is now going to the
correct email..
--
John-Mark Gurney Voice: +1 415 225 5579
"All that I will do, has been done, All that I have, has not."
More information about the freebsd-arch
mailing list