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>