Re: [PATCH] crypto: twofish - add x86_64/avx assemblerimplementation

From: Jussi Kivilinna
Date: Wed Aug 15 2012 - 07:00:17 EST


Quoting Borislav Petkov <bp@xxxxxxxxx>:

On Wed, Aug 15, 2012 at 11:42:16AM +0300, Jussi Kivilinna wrote:
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.





--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/