[openssl-dev] ARM optimised montgomery multiplication (armv4-mont)

Jonathan Larmour jifl at eCosCentric.com
Wed Jun 17 00:20:59 UTC 2015


On 16/06/15 22:12, Andy Polyakov wrote:
>>>> With some experimentation, it turns out that if I *stop* using the
>>>> crypto/bn/asm/bn/armv4-mont.pl generated asm "optimised" version, the time for
>>>> a simplish test to establish and close a simple SSL connection went from 28
>>>> seconds to 18. (It's quite a slow target at any time).
>>>>
>>>> In other words, this "optimised" version has slowed things down dramatically.
>>>> Has anyone queried the value of the asm of armv4-mont.pl any time in the last
>>>> few years?
[snip]

Hi Andy,

I found the cause - although OPENSSL_BN_ASM_MONT was defined, I hadn't noticed
that a colleague had put a #define OPENSSL_NO_ASM somewhere else (this isn't
linux but a port to our own OS). It turns out that (surprisingly) this
combination changes behaviour rather than barfing - it's even explicitly
catered for in bn_asm.c.

Regardless, the effect is that a different bn_mul_mont implementation gets
used, and the armv4-mont.pl implementation gets ignored entirely.

With that fixed, I now have greatly improved performance as expected. An
unfortunate waste of time for us both, but thanks for the assistance.

Jifl
-- 
------["Si fractum non sit, noli id reficere"]------       Opinions==mine


More information about the openssl-dev mailing list