freebsd-dev/sys/crypto/aesni
John-Mark Gurney 9d38fd076e address an issue where consumers, like IPsec, can reuse the same
session in multiple threads w/o locking..  There was a single fpu
context shared per session, if multiple threads were using the session,
and both migrated away, they could corrupt each other's fpu context...

This patch adds a per cpu context and a lock to protect it...

It also tries to better address unloading of the aesni module...
The pause will be removed once the OpenCrypto Framework provides a
better method for draining callers into _newsession...

I first discovered the fpu context sharing issue w/ a flood ping over
an IPsec tunnel between two bhyve machines...  The patch in D3015
was used to verify that this fix does fix the issue...

Reviewed by:	gnn, kib (both earlier versions)
Differential Revision:        https://reviews.freebsd.org/D3016
2015-07-08 19:15:29 +00:00
..
aesencdec.h unroll the loop slightly... This improves performance enough to 2015-07-07 20:31:09 +00:00
aeskeys_amd64.S Use the fact that the AES-NI instructions can be pipelined to improve 2013-09-03 18:31:23 +00:00
aeskeys_i386.S
aesni_ghash.c In the version of gcc in the FreeBSD tree, this modification was made to 2015-04-16 17:42:52 +00:00
aesni_os.h In the version of gcc in the FreeBSD tree, this modification was made to 2015-04-16 17:42:52 +00:00
aesni_wrap.c Add some new modes to OpenCrypto. These modes are AES-ICM (can be used 2014-12-12 19:56:36 +00:00
aesni.c address an issue where consumers, like IPsec, can reuse the same 2015-07-08 19:15:29 +00:00
aesni.h address an issue where consumers, like IPsec, can reuse the same 2015-07-08 19:15:29 +00:00