<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/x86/include/asm/crypto, branch linux-3.11.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.11.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.11.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2013-06-21T06:44:29Z</updated>
<entry>
<title>Revert "crypto: twofish - add AVX2/x86_64 assembler implementation of twofish cipher"</title>
<updated>2013-06-21T06:44:29Z</updated>
<author>
<name>Jussi Kivilinna</name>
</author>
<published>2013-06-08T09:17:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=99f42f937a080995b34e1ed75ed6934b5f96f9ca'/>
<id>urn:sha1:99f42f937a080995b34e1ed75ed6934b5f96f9ca</id>
<content type='text'>
This reverts commit cf1521a1a5e21fd1e79a458605c4282fbfbbeee2.

Instruction (vpgatherdd) that this implementation relied on turned out to be
slow performer on real hardware (i5-4570). The previous 8-way twofish/AVX
implementation is therefore faster and this implementation should be removed.

Converting this implementation to use the same method as in twofish/AVX for
table look-ups would give additional ~3% speed up vs twofish/AVX, but would
hardly be worth of the added code and binary size.

Signed-off-by: Jussi Kivilinna &lt;jussi.kivilinna@iki.fi&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
</content>
</entry>
<entry>
<title>Revert "crypto: blowfish - add AVX2/x86_64 implementation of blowfish cipher"</title>
<updated>2013-06-21T06:44:28Z</updated>
<author>
<name>Jussi Kivilinna</name>
</author>
<published>2013-06-08T09:17:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3d387ef08c40382315b8e9baa4bc9a07f7c49fce'/>
<id>urn:sha1:3d387ef08c40382315b8e9baa4bc9a07f7c49fce</id>
<content type='text'>
This reverts commit 604880107010a1e5794552d184cd5471ea31b973.

Instruction (vpgatherdd) that this implementation relied on turned out to be
slow performer on real hardware (i5-4570). The previous 4-way blowfish
implementation is therefore faster and this implementation should be removed.

Signed-off-by: Jussi Kivilinna &lt;jussi.kivilinna@iki.fi&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
</content>
</entry>
<entry>
<title>crypto: camellia - add AVX2/AES-NI/x86_64 assembler implementation of camellia cipher</title>
<updated>2013-04-25T13:09:07Z</updated>
<author>
<name>Jussi Kivilinna</name>
</author>
<published>2013-04-13T10:47:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f3f935a76aa0eee68da2b273a08d84ba8ffc7a73'/>
<id>urn:sha1:f3f935a76aa0eee68da2b273a08d84ba8ffc7a73</id>
<content type='text'>
Patch adds AVX2/AES-NI/x86-64 implementation of Camellia cipher, requiring
32 parallel blocks for input (512 bytes). Compared to AVX implementation, this
version is extended to use the 256-bit wide YMM registers. For AES-NI
instructions data is split to two 128-bit registers and merged afterwards.
Even with this additional handling, performance should be higher compared
to the AES-NI/AVX implementation.

Signed-off-by: Jussi Kivilinna &lt;jussi.kivilinna@iki.fi&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
</content>
</entry>
<entry>
<title>crypto: serpent - add AVX2/x86_64 assembler implementation of serpent cipher</title>
<updated>2013-04-25T13:09:07Z</updated>
<author>
<name>Jussi Kivilinna</name>
</author>
<published>2013-04-13T10:46:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=56d76c96a9f3e39ab733c5643b3ce5a1d4be242a'/>
<id>urn:sha1:56d76c96a9f3e39ab733c5643b3ce5a1d4be242a</id>
<content type='text'>
Patch adds AVX2/x86-64 implementation of Serpent cipher, requiring 16 parallel
blocks for input (256 bytes). Implementation is based on the AVX implementation
and extends to use the 256-bit wide YMM registers. Since serpent does not use
table look-ups, this implementation should be close to two times faster than
the AVX implementation.

Signed-off-by: Jussi Kivilinna &lt;jussi.kivilinna@iki.fi&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
</content>
</entry>
<entry>
<title>crypto: twofish - add AVX2/x86_64 assembler implementation of twofish cipher</title>
<updated>2013-04-25T13:09:05Z</updated>
<author>
<name>Jussi Kivilinna</name>
</author>
<published>2013-04-13T10:46:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cf1521a1a5e21fd1e79a458605c4282fbfbbeee2'/>
<id>urn:sha1:cf1521a1a5e21fd1e79a458605c4282fbfbbeee2</id>
<content type='text'>
Patch adds AVX2/x86-64 implementation of Twofish cipher, requiring 16 parallel
blocks for input (256 bytes). Table look-ups are performed using vpgatherdd
instruction directly from vector registers and thus should be faster than
earlier implementations. Implementation also uses 256-bit wide YMM registers,
which should give additional speed up compared to the AVX implementation.

Signed-off-by: Jussi Kivilinna &lt;jussi.kivilinna@iki.fi&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
</content>
</entry>
<entry>
<title>crypto: blowfish - add AVX2/x86_64 implementation of blowfish cipher</title>
<updated>2013-04-25T13:09:04Z</updated>
<author>
<name>Jussi Kivilinna</name>
</author>
<published>2013-04-13T10:46:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=604880107010a1e5794552d184cd5471ea31b973'/>
<id>urn:sha1:604880107010a1e5794552d184cd5471ea31b973</id>
<content type='text'>
Patch adds AVX2/x86-64 implementation of Blowfish cipher, requiring 32 parallel
blocks for input (256 bytes). Table look-ups are performed using vpgatherdd
instruction directly from vector registers and thus should be faster than
earlier implementations.

Signed-off-by: Jussi Kivilinna &lt;jussi.kivilinna@iki.fi&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
</content>
</entry>
<entry>
<title>crypto: x86 - add more optimized XTS-mode for serpent-avx</title>
<updated>2013-04-25T13:01:51Z</updated>
<author>
<name>Jussi Kivilinna</name>
</author>
<published>2013-04-08T18:50:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a05248ed2d9a83ae7c3e6db7c4ef9331c3dedc81'/>
<id>urn:sha1:a05248ed2d9a83ae7c3e6db7c4ef9331c3dedc81</id>
<content type='text'>
This patch adds AVX optimized XTS-mode helper functions/macros and converts
serpent-avx to use the new facilities. Benefits are slightly improved speed
and reduced stack usage as use of temporary IV-array is avoided.

tcrypt results, with Intel i5-2450M:
        enc     dec
16B     1.00x   1.00x
64B     1.00x   1.00x
256B    1.04x   1.06x
1024B   1.09x   1.09x
8192B   1.10x   1.09x

Signed-off-by: Jussi Kivilinna &lt;jussi.kivilinna@iki.fi&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
</content>
</entry>
<entry>
<title>crypto: camellia-x86_64 - share common functions and move structures and function definitions to header file</title>
<updated>2012-11-09T09:32:31Z</updated>
<author>
<name>Jussi Kivilinna</name>
</author>
<published>2012-10-26T11:48:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cf582ccedad02eb9bfdcdb25adfc800dd117b428'/>
<id>urn:sha1:cf582ccedad02eb9bfdcdb25adfc800dd117b428</id>
<content type='text'>
Prepare camellia-x86_64 functions to be reused from AVX/AESNI implementation
module.

Signed-off-by: Jussi Kivilinna &lt;jussi.kivilinna@mbnet.fi&gt;
Acked-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
</content>
</entry>
<entry>
<title>crypto: serpent/avx - avoid using temporary stack buffers</title>
<updated>2012-10-24T13:10:55Z</updated>
<author>
<name>Jussi Kivilinna</name>
</author>
<published>2012-10-20T12:06:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=facd416fbc1cdee357730909a414898934f16ae1'/>
<id>urn:sha1:facd416fbc1cdee357730909a414898934f16ae1</id>
<content type='text'>
Introduce new assembler functions to avoid use temporary stack buffers in glue
code. This also allows use of vector instructions for xoring output in CTR and
CBC modes and construction of IVs for CTR mode.

ECB mode sees ~0.5% decrease in speed because added one extra function
call. CBC mode decryption and CTR mode benefit from vector operations
and gain ~3%.

Signed-off-by: Jussi Kivilinna &lt;jussi.kivilinna@mbnet.fi&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
</content>
</entry>
<entry>
<title>crypto: x86/glue_helper - use le128 instead of u128 for CTR mode</title>
<updated>2012-10-24T13:10:54Z</updated>
<author>
<name>Jussi Kivilinna</name>
</author>
<published>2012-10-20T12:06:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=58990986f1cba40c23c0c10592ace08616de3ffa'/>
<id>urn:sha1:58990986f1cba40c23c0c10592ace08616de3ffa</id>
<content type='text'>
'u128' currently used for CTR mode is on little-endian 'long long' swapped
and would require extra swap operations by SSE/AVX code. Use of le128
instead of u128 allows IV calculations to be done with vector registers
easier.

Signed-off-by: Jussi Kivilinna &lt;jussi.kivilinna@mbnet.fi&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
</content>
</entry>
</feed>
