Re: git: 32a2fed6e71f - stable/13 - openssl: Fix detection of ARMv7 and ARM64 CPU features

From: Allan Jude <allanjude_at_freebsd.org>
Date: Thu, 25 Nov 2021 17:59:18 UTC
On 11/25/2021 12:16 PM, Helge Oldach wrote:
> Allan Jude wrote on Thu, 25 Nov 2021 17:54:06 +0100 (CET):
>> On 11/25/2021 10:31 AM, Helge Oldach wrote:
>>> Allan Jude wrote on Thu, 25 Nov 2021 16:09:25 +0100 (CET):
>>>> On 11/25/2021 2:38 AM, Helge Oldach wrote:
>>>>> hmo@p48 ~ $ for f in 0 1 2 3 8 16 32 64 128 ; do echo -n $f:; env OPENSSL_armcap=$f openssl speed -evp aes-256-gcm 2>&1 | tail -1 | cut -wf7; done
>>>>> 0:42295.15k
>>>>> 1:23891.19k
>>>>> 2:42208.57k
>>>>> 3:23970.56k
>>>>> 8:42354.98k
>>>>> 16:42199.06k
>>>>> 32:size
>>>>> Illegal instruction (core dumped)
>>>>> 64:42322.42k
>>>>> 128:42275.00k
>>>>> hmo@p48 ~ $
>>>>>
>>>>> So I guess HWCAP_FP is the culprit? Maybe related to hard/soft floating
>>>>> point math which indeed is kind of special on the Pi?
>>>>
>>>> So yeah, the issue seems to be that floating point on the RPi4 is slower
>>>> than not, but now openssl (properly) detects that the CPU advertises
>>>> support for it.
>>>>
>>>> As seen elsewhere in the thread, most other ARM platforms get a very
>>>> significant speed boost.
>>>
>>> So can we disable FP within OpenSSL for the RPi by default? This commit
>>> basically introduced a regression for this platform and I think that
>>> should be fixed.
>>>
>>> Or it the root cause a suboptimal FP implementation that is not adequate
>>> for the RPi?
>>>
>>> Kind regards
>>> Helge
>>>
>>
>> The root cause is that the RPi4 advertises support for FP, but its FP is
>> slow.
>>
>> I don't know that there is an easy way to detect the RPi4 specifically.
>> You might be able to just disable the FP bit by setting
>> OPENSSL_armcap=~1 globally, or maybe via openssl.conf?
> 
> Sure can do that locally - but again: This commit is basically a
> regression which IMHO should be fixed in a way not requiring users to
> tweak things?
> 
> Kind regards
> Helge
> 

It is only a regression to RPi4's, but a massive improvement to every 
other bit of ARM hardware that has been tested. The error that made 
OpenSSL disable FP before, was an error (it was calling AT_CANARY 
instead of AT_HWCAP).

So, your issue with openssl being slow on the RPi4 will need to be taken 
up with OpenSSL.

-- 
Allan Jude