Bug #87483 Accelerated AES with ARMv8 Crypto Extensions in yaSSL
Submitted: 21 Aug 2017 3:30 Modified: 25 Jul 2019 10:46
Reporter: Yuqi Gu (OCA) Email Updates:
Status: Won't fix Impact on me:
None 
Category:MySQL Server: Compiling Severity:S5 (Performance)
Version: OS:Linux
Assigned to: CPU Architecture:ARM
Tags: Contribution

[21 Aug 2017 3:30] Yuqi Gu
Description:
Support for 64-bit ARMv8 AES cryptography extensions in yaSSL taoCrypt.
The AES with ARMv8 NEON intrinsics will optimized the performance rather than uses table-based lookup.

How to repeat:
Environment: H........ T...... ....... , C..... T....... , A.......... (........)	
OS: ubuntu16.04/Debian 8 ,  Centos

use yassl taocrypt benchmark(SOURCE_HOME/extra/yassl/taocrypt/benchmark/benchmark.cpp):

Platform \ Case         	Software AES	AArch64 AES Intrinsics
A.......... (........)	        92.96 MB/s	846.04 MB/s
H........ T......(......7)	99.01 MB/s	887.31 MB/s
H........ T......(......2)	113.60 MB/s	1218.64 MB/s
C..... T.......	                47.36 MB/s	151.09 MB/s
[21 Aug 2017 3:35] Yuqi Gu
ARMv8 intrinsic implementation 

(*) I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.

Contribution: Accelerated-AES-with-ARMv8-Crypto-Extensions.patch (application/octet-stream, text), 8.40 KiB.

[21 Aug 2017 4:50] MySQL Verification Team
Hello Yuqi Gu,

Thank you for the report and contribution.

Thanks,
Umesh
[22 Aug 2017 2:31] Yuqi Gu
update the patch

Attachment: aes-v.1.1.patch (application/octet-stream, text), 8.32 KiB.

[22 Aug 2017 8:10] Georgi Kodinov
Thank you for your contribution. But I have to regretfully deny it for now, since we lack the hardware to test this properly. 
I have forwarded it to yaSSL support if they want to take it.
[22 Aug 2017 13:53] OCA Admin
Contribution submitted via Github - Bug #87483 Accelerated AES with ARMv8 Crypto Extensions in yaSSL 
(*) Contribution by Yuqi Gu (Github guyuqi, mysql-server/pull/168#issuecomment-323904363): I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.

Contribution: git_patch_136880783.txt (text/plain), 8.36 KiB.

[24 Aug 2017 10:23] Yuqi Gu
Hello Georgi Kodinov,

Really thanks for your comment. 

With regard to lacking hardware, we'd like to offer ARMv8 hardware to you(ssh remote) to test it. Would you please give the ssh pub key to me and we'll give the access to you.

Or We also would like to attach the both X86's & ARM64's build and test log to verify it.
We're looking forward to your reply.

Thanks!

BRs,
Yuqi
[25 Aug 2017 9:24] Yuqi Gu
Hi Georgi Kodinov,

The another thing needs to be explained:
'ARMv8 hardware' mentioned above means that we will give you a ARM64v8 VM or ARM64v8 cloud service which may be offered by Linaro to verify the patch on ARM.

Thanks!

BRs,
Yuqi
[29 Aug 2017 16:54] John Mark
Greetings! Is there anything we can do to move this along? We're looking at providing development resources. Please let us know how we can help to resolve this.

Thanks,
JM
[6 Sep 2017 7:39] Yuqi Gu
Hi Umesh Shastry, 

How can I modify the info about "How to repeat" in this bug ticket? 
I want to hide details of hardware platforms for our company policy.
Or, could you please help me to do so? Thanks!

BRs
Yuqi
[6 Sep 2017 8:04] MySQL Verification Team
Hello Yuqi,

I'll request our web team to hide those requested details and until then I'll mark this bug report as private. Bug will be published later.

Thanks,
Umesh
[6 Sep 2017 12:26] MySQL Verification Team
Hello Yuqi,

Our web team has modified the details, could you please confirm if it is okay to publish the bug now? 

Thanks,
Umesh
[7 Sep 2017 1:18] Yuqi Gu
Hi Umesh,

Really thank you for quick response!

Could you please also hide the info about softiron, D03/D05?
Thank you very much!

BRs
Yuqi
[7 Sep 2017 7:02] MySQL Verification Team
Hello Yuqi,

Done, could you please confirm if it is okay to publish the bug now? 

Thanks,
Umesh
[7 Sep 2017 7:18] Yuqi Gu
Hello Umesh,

It's perfect now and pls publish it.
Thank you very much!

BRs
Yuqi
[25 Jul 2019 10:46] Erlend Dahl
YaSSL support will be removed in an upcoming release.