Re: [PATCH] crypto: twofish - add x86_64/avx assembler implementation
From: Jussi Kivilinna <hidden>
Date: 2012-08-15 11:00:25
Also in:
lkml
Quoting Borislav Petkov [off-list ref]:
On Wed, Aug 15, 2012 at 11:42:16AM +0300, Jussi Kivilinna wrote:quoted
I started thinking about the performance on AMD Bulldozer. vmovq/vmovd/vpextr*/vpinsr* between FPU and general purpose registers on AMD CPU is alot slower (latencies from 8 to 12 cycles) than on Intel sandy-bridge (where instructions have latency of 1 to 2). See: http://www.agner.org/optimize/instruction_tables.pdf It would be really good, if implementation could be tested on AMD CPU to determinate, if it causes performance regression. However I don't have access to machine with such CPU.But I do. :) And if you tell me exactly how to run the tests and on what kernel, I'll try to do so.
Twofish-avx (CONFIG_TWOFISH_AVX_X86_64) is available in 3.6-rc1. For
testing you need CRYPTO_TEST build as module. You should turn off
turbo-core, freq-scaling, etc.
Testing twofish-avx ('async twofish' speed test):
modprobe twofish-avx-x86_64
modprobe tcrypt mode=504 sec=1
Testing twofish-x86_64-3way ('sync twofish' speed test):
modprobe twofish-x86_64-3way
modprobe tcrypt mode=202 sec=1
Loading tcrypt will block until tests are complete, after which
modprobe will return with error. This is expected. Results are in
kernel log.
-Jussi
HTH. -- Regards/Gruss, Boris.