summaryrefslogtreecommitdiffstats
path: root/sys/conf/files.amd64
diff options
context:
space:
mode:
authorjmg <jmg@FreeBSD.org>2013-09-03 18:31:23 +0000
committerjmg <jmg@FreeBSD.org>2013-09-03 18:31:23 +0000
commit8ec798134a6d611c2af470ec8576cfe300cef5e7 (patch)
tree70163365566d769ffe148062c84abb56725f25e7 /sys/conf/files.amd64
parente10c4e2adb9090fc2fe5c150e4c8dcd7b5e360ac (diff)
downloadFreeBSD-src-8ec798134a6d611c2af470ec8576cfe300cef5e7.zip
FreeBSD-src-8ec798134a6d611c2af470ec8576cfe300cef5e7.tar.gz
Use the fact that the AES-NI instructions can be pipelined to improve
performance... Use SSE2 instructions for calculating the XTS tweek factor... Let the compiler do more work and handle register allocation by using intrinsics, now only the key schedule is in assembly... Replace .byte hard coded instructions w/ the proper instructions now that both clang and gcc support them... On my machine, pulling the code to userland I saw performance go from ~150MB/sec to 2GB/sec in XTS mode. GELI on GNOP saw a more modest increase of about 3x due to other system overhead (geom and opencrypto)... These changes allow almost full disk io rate w/ geli... Reviewed by: -current, -security Thanks to: Mike Hamburg for the XTS tweek algorithm
Diffstat (limited to 'sys/conf/files.amd64')
-rw-r--r--sys/conf/files.amd647
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/conf/files.amd64 b/sys/conf/files.amd64
index 6d35d1f..1a66aa5 100644
--- a/sys/conf/files.amd64
+++ b/sys/conf/files.amd64
@@ -138,10 +138,13 @@ amd64/amd64/uma_machdep.c standard
amd64/amd64/vm_machdep.c standard
amd64/pci/pci_cfgreg.c optional pci
cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S optional zfs compile-with "${ZFS_S}"
-crypto/aesni/aesencdec_amd64.S optional aesni
crypto/aesni/aeskeys_amd64.S optional aesni
crypto/aesni/aesni.c optional aesni
-crypto/aesni/aesni_wrap.c optional aesni
+aesni_wrap.o optional aesni \
+ dependency "$S/crypto/aesni/aesni_wrap.c" \
+ compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc} ${WERROR} ${PROF} -mmmx -msse -maes ${.IMPSRC}" \
+ no-implicit-rule \
+ clean "aesni_wrap.o"
crypto/blowfish/bf_enc.c optional crypto | ipsec
crypto/des/des_enc.c optional crypto | ipsec | netsmb
crypto/via/padlock.c optional padlock
OpenPOWER on IntegriCloud