Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Nov 2021 20:36:40 +0100 (CET)
From:      freebsd@oldach.net (Helge Oldach)
To:        allanjude@freebsd.org (Allan Jude)
Cc:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   Re: git: 32a2fed6e71f - stable/13 - openssl: Fix detection of ARMv7 and ARM64 CPU features
Message-ID:  <202111231936.1ANJaeDT011754@nuc.oldach.net>
In-Reply-To: <d1d98c6b-f643-5c43-3dc2-de24e752be57@freebsd.org> from Allan Jude at "23 Nov 2021 14:14:53"

next in thread | previous in thread | raw e-mail | index | archive | help
Allan Jude wrote on Tue, 23 Nov 2021 20:14:53 +0100 (CET):
> On 11/23/2021 5:00 AM, Helge Oldach wrote:
> > Allan Jude wrote on Mon, 22 Nov 2021 19:14:13 +0100 (CET):
> > Hmmm. On a RPi4/8G:
> > 
> > Before (FreeBSD 13.0-STABLE (GENERIC) #366 stable/13-n248173-d16fbc488e6):
> > | type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
> > | aes-256-gcm      35791.98k    38533.57k    39986.77k    41397.59k    39840.43k    39638.36k
> > 
> > After (FreeBSD 13.0-STABLE (GENERIC) #367 stable/13-n248176-f085bb0e621)
> > 
> > | type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
> > | aes-256-gcm      21277.62k    23226.64k    23613.90k    23687.51k    23892.93k    23947.95k
> > 
> > It seems that AES throughput is actually cut by almost half?
> 
> Do you know which of the CPU optimizations your RPi4 supports?

Is this what you need?

 Instruction Set Attributes 0 = <CRC32>
 Instruction Set Attributes 1 = <>
         Processor Features 0 = <AdvSIMD,FP,EL3 32,EL2 32,EL1 32,EL0 32>
         Processor Features 1 = <>
      Memory Model Features 0 = <TGran4,TGran64,SNSMem,BigEnd,16bit ASID,16TB PA>
      Memory Model Features 1 = <8bit VMID>
      Memory Model Features 2 = <32bit CCIDX,48bit VA>
             Debug Features 0 = <DoubleLock,2 CTX BKPTs,4 Watchpoints,6 Breakpoints,PMUv3,Debugv8>
             Debug Features 1 = <>
         Auxiliary Features 0 = <>
         Auxiliary Features 1 = <>
AArch32 Instruction Set Attributes 5 = <CRC32,SEVL>
AArch32 Media and VFP Features 0 = <FPRound,FPSqrt,FPDivide,DP VFPv3+v4,SP VFPv3+v4,AdvSIMD>
AArch32 Media and VFP Features 1 = <SIMDFMAC,FPHP DP Conv,SIMDHP SP Conv,SIMDSP,SIMDInt,SIMDLS,FPDNaN,FPFtZ>

> You can set the environment variable OPENSSL_armcap to override 
> OpenSSL's detection.
> 
> Try: env OPENSSL_armcap=0 openssl speed -evp aes-256-gcm

On FreeBSD 13.0-STABLE (GENERIC) #367 stable/13-n248176-f085bb0e621 again (i.e. after this commit):

hmo@p48 ~ $ env OPENSSL_armcap=0 openssl speed -evp aes-256-gcm
Doing aes-256-gcm for 3s on 16 size blocks: 6445704 aes-256-gcm's in 3.08s
Doing aes-256-gcm for 3s on 64 size blocks: 1861149 aes-256-gcm's in 3.00s
Doing aes-256-gcm for 3s on 256 size blocks: 479664 aes-256-gcm's in 3.01s
Doing aes-256-gcm for 3s on 1024 size blocks: 122853 aes-256-gcm's in 3.04s
Doing aes-256-gcm for 3s on 8192 size blocks: 15181 aes-256-gcm's in 3.00s
Doing aes-256-gcm for 3s on 16384 size blocks: 7796 aes-256-gcm's in 3.07s
OpenSSL 1.1.1l-freebsd  24 Aug 2021
built on: reproducible build, date unspecified
options:bn(64,64) rc4(int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: clang
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-256-gcm      33504.57k    39704.51k    40825.01k    41394.83k    41454.25k    41601.52k
hmo@p48 ~ $ openssl speed -evp aes-256-gcm
Doing aes-256-gcm for 3s on 16 size blocks: 4066201 aes-256-gcm's in 3.00s
Doing aes-256-gcm for 3s on 64 size blocks: 1087387 aes-256-gcm's in 3.00s
Doing aes-256-gcm for 3s on 256 size blocks: 280110 aes-256-gcm's in 3.03s
Doing aes-256-gcm for 3s on 1024 size blocks: 70412 aes-256-gcm's in 3.04s
Doing aes-256-gcm for 3s on 8192 size blocks: 8762 aes-256-gcm's in 3.00s
Doing aes-256-gcm for 3s on 16384 size blocks: 4402 aes-256-gcm's in 3.02s
OpenSSL 1.1.1l-freebsd  24 Aug 2021
built on: reproducible build, date unspecified
options:bn(64,64) rc4(int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: clang
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-256-gcm      21686.41k    23197.59k    23656.30k    23725.04k    23926.10k    23916.23k
hmo@p48 ~ $

Kind regards,
Helge



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202111231936.1ANJaeDT011754>