The Man Who Fell From The Wrong Side Of The Sky:2019年8月12日分

2019/8/12(Mon)

[オレオレN6] 続々・OpenSSL + MIPS

とりあえずgxemul -emalta でevbmips mips64el環境用意してベンチをとってみたけど、問題のAESもCコードと同等かそれ以上に性能出るようにはなった。 つーことで少なくともmips64であれば有効にしておいた方がいいという感じなんやな。

こっちがTNF N6の結果

OpenSSL 1.0.1i 6 Aug 2014
built on: NetBSD 6.1.5
options:bn(32,32) md2(int) rc4(ptr,int) des(idx,cisc,16,long) aes(partial) idea(int) blowfish(ptr)
compiler: gcc version 4.5.3 (NetBSD nb2 20111202)
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md2               8971.31        18.01k       22.09k       27.68k       27.27k
sha1                29.33k       88.24k      276.09k      320.67k      483.97k
rc4                 68.24k      728.21k      754.15k      668.54k      777.57k
des cbc             55.41k      120.56k       11.99k      114.13k       68.27k
des ede3            42.32k     9600.00        37.96k       35.33k       30.85k
aes-128 cbc        216.45k      129.56k      245.84k       24.19k      221.71k
aes-192 cbc        176.62k      176.41k      212.42k      177.80k      217.19k
aes-256 cbc        101.68k      185.50k      168.79k      187.93k      184.76k

そんでこちらがopensslconf.hの設定をLinuxと同じにしてasmコードも有効にしたオレオレN6

OpenSSL 1.0.2k  26 Jan 2017
built on: reproducible build, date unspecified
options:bn(64,32) md2(int) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) idea(int) blowfish(ptr)
gcc version 4.5.3 (NetBSD nb2 20111202)
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md2                 10.40k       21.04k       33.09k       39.72k       40.14k
sha1                45.79k      126.83k      325.21k      390.09k      568.55k
rc4                852.41k      921.17k      835.38k      827.15k      830.52k
des cbc            116.81k      101.42k      122.11k      102.74k      122.14k
des ede3            42.97k       43.51k       39.77k       37.22k       38.20k
aes-128 cbc        223.64k      242.86k      248.47k      220.41k      215.45k
aes-192 cbc        195.34k      193.07k      215.43k      213.97k      194.33k
aes-256 cbc        173.26k      155.52k      158.01k      188.16k      187.30k

うーん微妙過ぎる…

あとgxemul -emaltaはcdromエミュが機能してないっぽいので、インストールは仮想ディスクをvnd(4)経由でマウントしてtarballを展開する必要があった。 あとこっちはhpcmipsと違ってマルチユーザーで動いとるな。

[オレオレN6] N/evbmips-mips64el

なんか変だなという疑問をエミュレーターの不具合やろで脳死してたのだが、N6/mips64ってkernelはn64だけどuserlandやkernel modueはn32でビルドされとるんやな(いちおうn64なlibも/usr/lib/64にあるのだけど)。 だからMALTA64なkernelで起動した時kernfsやらprocfsサポートが無いからエラー出るから後載せしようとmodload(8)かけるとBad system callで死ぬのか…なんやこれ… うーん全部o32/n32/n64で別portにするという選択肢無かったんすかねこれ…どん判AA略

まぁええわ、N/hpcmipsでo32の-DAES_ASMの速度がクソ遅い原因がn32で解消するなら、それはもうCPUがMIPS IIIでないからちゅーことで一件落着や、いまいち腑に落ちんが。

それにしても/usr/testsもn32なバイナリなのでn64なlibcryptoの動作確認のしようが無くて困るのだがどうすっかねこれ…