John-Mark Gurney
2014-Feb-12 00:39 UTC
CFR: unifing sha256 userland/kernel implementation...
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."
Pawel Jakub Dawidek
2014-Feb-14 14:26 UTC
CFR: unifing sha256 userland/kernel implementation...
On Tue, Feb 11, 2014 at 04:39:07PM -0800, John-Mark Gurney wrote:> 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.I can't wait:) -- Pawel Jakub Dawidek http://www.wheelsystems.com FreeBSD committer http://www.FreeBSD.org Am I Evil? Yes, I Am! http://mobter.com -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 196 bytes Desc: not available URL: <http://lists.freebsd.org/pipermail/freebsd-security/attachments/20140214/92d8d9da/attachment.sig>