Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Feb 2014 10:56:39 -0800
From:      John-Mark Gurney <jmg@funkthat.com>
To:        security@FreeBSD.org, arch@FreeBSD.org
Subject:   CFR: unifing sha256 userland/kernel implementation...
Message-ID:  <20140211185639.GK34851@funkthat.com>

next in thread | raw e-mail | index | archive | help
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.

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140211185639.GK34851>