OpenJDK-8: Crypto performance is very slow on ARMv7
Xerxes Rånby
xerxes at zafena.se
Fri Jan 27 10:47:57 UTC 2017
Crypographic performance rely on available of random numbers with high
entropy.
It is likely that the available entropy in /dev/random is depleted and
will block until the level of entropy in the system is high enough.
The linux kernel drivers gradually fills up /dev/random however on
embedded arm systems without many mechanical parts the amount of added
randomness with high entropy sources are low in these SOC devices.
You can check the amount of available entropy (and consume some) by running
cat /proc/sys/kernel/random/entropy_avail
A healthy Linux system with a lot of entropy available will have return
close to the full 4,096 bits of entropy.
If the value returned is less than 200, the system is running low on
entropy.
If the system is running low on entropy then you can add extra
user-space daemons that provide extra entropy
audio entropy daemon - https://www.vanheusden.com/aed/
video entropy daemon - https://www.vanheusden.com/ved/
timer entropy daemon - https://www.vanheusden.com/te/
cpu based timer entropy daemon using the havege algoritm -
http://www.irisa.fr/caps/projects/hipsor/
There exist many usb based hardware entropy sources as well.
Cheers
Xerxes
Den 2017-01-27 kl. 11:18, skrev Srinivasa Rao Ragolu:
> Hi All,
>
> I have ported openjdk-8-72b05(from Yocto) for armv7 . I am sharing sample
> code via link, which I have run to see the crypto performance and found it
> is very slow.
>
> Code Location:
> https://drive.google.com/open?id=0BxeL64n1TNdJMlItSWpld1lIdjg
>
> See the output below:
>
>
> root at Spider:~/Certificates# uname -a
> Linux Spider 4.4.32-rt41-yocto-standard #1 SMP PREEMPT Mon Jan 9 00:24:23
> PST 2017 aarch64 GNU/Linux
> root at Spider:~/Certificates# time java -cp common-0.0.1-SNAPSHOT.jar:jars/*
> com.ericsson.athena.common.certificate.Main
> ERROR StatusLogger No log4j2 configuration file found. Using default
> configuration: logging only errors to the console.
> Generating KeyPair (Size 2048)...
> PrivateKey: RSA Private CRT Key
> modulus: cbd10bbf831335e4b9d0942ed4da06
> 2763caf63c3230f509ee7ce8c234bb6e6e6c1bf75c8e3a46f955227e7edc
> ce1de0f6691320b1f5fa300f9f8819d0507243c264ca77cf3eac67450dd2
> 08b30f2e34cebc2bec1fc1aed6d2f389d5843492c19297038019c4302259
> 763aec26e302362ade9b7a190f1606cc0355c698f32e206c4af84032539c
> 3519b72feb1886ad5366a35e233942a38a32b25b25d418c0f4d452a491e1
> 64046b638d4b2777d743cdbb6b3a166fa413e0595414e3dd326468dad084
> 65fdbbb1551915645ea9d1c4783903b08327fd003590f85446315f6df73e
> e64e26deac07e4fddd2e991869aac660dc489c68b989544788aeb91474258b
> public exponent: 10001
> private exponent: e210696a1a05b76e8d75d41112f5b5
> d8557a4bc8fe1809dce231442f6433208c49a270a8b04de365af657b2355
> e07dde2fc6e14dba6b37a7bc81c3811e3ff1a7f12314e49ec7728cce02ee
> 46729511387160358cc961c27e1f02668c9fa97b12f422468cfcb1fbd19d
> a38d92069a7406db60882d7d4346631e409f65e5453fe500a49f6a04c0d9
> 06b7b180436f09027606db50f45c7847ce6febe01a882ffe73f9d1f15c4b
> daaaa7be4ab15431e6b665ebc358a8ee55785e4157ff46052533d4b486b1
> 3393aae1d8d0b4fd3c7468e222506703915f10a016ce6c614e97ddc4156a
> b3c42ecd4d60997924f2d5b8b2845d2f1b20a5132010f1d79dfd258cda1b1
> primeP: ef0c9c674cd9134beedef5c0009784
> 0ed1b7fd281a0f8de837b217e447892c698b8e8deba9fd596550dd22fc79
> 561b5befd4659d281a44a15d56605c780eb22d809fffda7943e6f5f6dfb5
> 92b601502882e19478ec90c6f084afb8ba5eedf2509007869718ee82454e
> 54757165ca57269090fcc35bc19f6d00ce1877f0c56d3b
> primeQ: da44dde77039f5405f9130dce4d1eb
> a783f1c8d03657a61fb43a8e15387d566a59006abefb5ffa2cdff9b3c661
> d62158da7f8d4a6b80eba4522292d9542d37350f0e48e46b0366ff65edeb
> c781253518959d953e72c991581e24ebd76d92e238dae22ee2d5859ced88
> c0d03d35db5b7eccd1766d7f1cb1e0859ad62db867e3f1
> primeExponentP: aa05e9345be7459f4b6dcf92d998ea
> b773988e79b85779d241d2ecc553d010039ddc2dbb01740de24eea8a18d2
> e058a342686a41a62550cd08cb07cc9d23aebd487004954a8cee37e17869
> f7c87614a24bbcd05255c7ff8750887f362790cc395ac7cf85a698f594ff
> ca78a1c8096b85256bca2bd516592339605cecea1631c3
> primeExponentQ: c76cdaaf064bfe37e5d97ba2a7f2e0
> f43a4ae4a6d0affe99c30b291c5c73b04c14ab9bdc8942a50af14d6da359
> 6ad32722e41dcd1c323b9af46ca06daf4a6cc1aed2e768c419e4b67f8405
> c44fcc161a33413ac6470cc21e97d43623abfae374fd1061b46150e613e5
> b9fdc99f769fbf58161db567c9690072320974d6a31d91
> crtCoefficient: bc841db992c7cdfa376cba7677e88d
> 5b81c27455db2371224aa3029179c93d638d8c6aec2d1af782647e5320da
> 356cb394115180296ed49841cf3adf0a2e3cff25669f172edd2c6e3ea5af
> 0a3c55bd1349f5c74de41333a48ec0ae0fb45f747b94897ae7ab74e7156c
> 5945a5833438113b6feda152b5a7190d584ff771637b4d
>
> PublicKey: RSA Public Key
> modulus: cbd10bbf831335e4b9d0942ed4da06
> 2763caf63c3230f509ee7ce8c234bb6e6e6c1bf75c8e3a46f955227e7edc
> ce1de0f6691320b1f5fa300f9f8819d0507243c264ca77cf3eac67450dd2
> 08b30f2e34cebc2bec1fc1aed6d2f389d5843492c19297038019c4302259
> 763aec26e302362ade9b7a190f1606cc0355c698f32e206c4af84032539c
> 3519b72feb1886ad5366a35e233942a38a32b25b25d418c0f4d452a491e1
> 64046b638d4b2777d743cdbb6b3a166fa413e0595414e3dd326468dad084
> 65fdbbb1551915645ea9d1c4783903b08327fd003590f85446315f6df73e
> e64e26deac07e4fddd2e991869aac660dc489c68b989544788aeb91474258b
> public exponent: 10001
>
> Generating Certificate...
> Certificate PEM: -----BEGIN CERTIFICATE-----
> MIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgjENMAsGA1UEKQwEVGVz
> dDELMAkGA1UEBhMCU0UxEjAQBgNVBAgMCVN0b2tjaG9sbTEOMAwGA1UEBwwFS2lz
> dGExETAPBgNVBAoMCEhEUyA4MDAwMQwwCgYDVQQLDANDTU0xHzAdBgNVBAMMFlNl
> Y3VyaXR5IFRydXN0IFNlcnZpY2UwHhcNMTcwMTI1MDMwMTI3WhcNMTgwMTI1MDMw
> MTI3WjCBgjENMAsGA1UEKQwEVGVzdDELMAkGA1UEBhMCU0UxEjAQBgNVBAgMCVN0
> b2tjaG9sbTEOMAwGA1UEBwwFS2lzdGExETAPBgNVBAoMCEhEUyA4MDAwMQwwCgYD
> VQQLDANDTU0xHzAdBgNVBAMMFlNlY3VyaXR5IFRydXN0IFNlcnZpY2UwggEiMA0G
> CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDABdQWm514+56SR3TJR+bQvjztRVzN
> NYXe67l0zsJfjprDf7mrSfe7NJMPjht/ltAgB4Pb8h8SlYZLtIKWF/fJ8rLRSNsZ
> pxk1cvxVibPyyUoXLq+jOTTsplNBhl2LDzVMspwd66CckP/TIB46g8vr4xyQMiAt
> tF6awL+ExY6V85/3btpjImBp66qhzZUiBnEOtQ5fNV6De4NQf7cLHGg7sdvcwWBv
> Ngz1zIpFuBlzzyAvoYWhrUADN/KJMBPoPKdhBWTA1DSt+RT57dPqirLPUlIKNk74
> t8De+XJQUf8A4bfvZDI6I1mFh6f0ujDAPxCx1VuI3nlVqovtT2P8JTDpAgMBAAEw
> DQYJKoZIhvcNAQELBQADggEBAKM3/WxEDveIekL1qdBLBI6IuPRiarlrQFmKfD/F
> +BNupyltBHOKpli4uS7IlO3QTQCJczk8Y6eh71fzOgavOJK9izAcJOj3wnTh6ICI
> Iysb/Shh8X7C1dKHOrJe3mjzEAHbYEl/OOWae4UKrzr+p8JVrJpHucQMC/NUVMpi
> f0FBNHfIMUezOloC97cSBMV+DaDkHhTYijmJ7ya1Jam++vO8Tspi3HcfslXxb3v9
> jQ/sXhBMhvGNIErOHiHsOSK/BaE6DcDePixubcGJVQBIPlk2/BN7PYR+kyI8NkHZ
> T+6+vvu36GPkJnuP94f1yglP2D7PsijBl+p1Qoi5hFyFJvg=
> -----END CERTIFICATE-----
>
>
> *real 7m3.241s*
> *user 7m1.972s*
> *sys 0m0.196s*
>
> Could you please suggest any solution or patches to improve the performance?
>
> Thanks in advance,
> Srinivas
More information about the aarch32-port-dev
mailing list