Atom C2758 - loading aesni(4) reduces performance

Kevin Day toasty at dragondata.com
Sun May 24 16:22:29 UTC 2015


I’ve got an Atom C2758 system:

CPU: Intel(R) Atom(TM) CPU  C2758  @ 2.40GHz (2400.06-MHz K8-class CPU)
  Origin = "GenuineIntel"  Id = 0x406d8  Family = 0x6  Model = 0x4d  Stepping = 8
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x43d8e3bf<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1,SSE4.2,MOVBE,POPCNT,TSCDLT,AESNI,RDRAND>
  AMD Features=0x28100800<SYSCALL,NX,RDTSCP,LM>
  AMD Features2=0x101<LAHF,Prefetch>
  Standard Extended Features=0x2282<TSCADJ,SMEP,ENHMOVSB>

Enabling aesni seems to make performance much worse:

root at router:~ # openssl speed -evp aes-256-cbc -elapsed
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-256-cbc for 3s on 16 size blocks: 33200486 aes-256-cbc's in 3.01s
Doing aes-256-cbc for 3s on 64 size blocks: 11444626 aes-256-cbc's in 3.01s
Doing aes-256-cbc for 3s on 256 size blocks: 3328753 aes-256-cbc's in 3.02s
Doing aes-256-cbc for 3s on 1024 size blocks: 866523 aes-256-cbc's in 3.02s
Doing aes-256-cbc for 3s on 8192 size blocks: 108891 aes-256-cbc's in 3.00s
OpenSSL 1.0.1e-freebsd 11 Feb 2013
built on: date not available
options:bn(64,64) rc4(16x,int) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(idx)
compiler: cc
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-256-cbc     176609.34k   243517.86k   281851.62k   293480.37k   297345.02k


root at router:~ # kldload aesni
root at router:~ # openssl speed -evp aes-256-cbc -elapsed
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-256-cbc for 3s on 16 size blocks: 881020 aes-256-cbc's in 3.02s
Doing aes-256-cbc for 3s on 64 size blocks: 842078 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 256 size blocks: 700368 aes-256-cbc's in 3.03s
Doing aes-256-cbc for 3s on 1024 size blocks: 425602 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 8192 size blocks: 76495 aes-256-cbc's in 3.00s
OpenSSL 1.0.1e-freebsd 11 Feb 2013
built on: date not available
options:bn(64,64) rc4(16x,int) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(idx)
compiler: cc
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-256-cbc       4662.35k    17964.33k    59148.60k   145272.15k   208882.35k


Is this expected here, or is something broken?

— Kevin



More information about the freebsd-security mailing list