Re: [PATCH v3] x86, crypto: ported aes-ni implementation to x86

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12.11.2010, 08:34 Huang Ying wrote:
On Fri, 2010-11-12 at 15:30 +0800, Mathias Krause wrote:
>> On 12.11.2010, 01:33 Huang Ying wrote:
>>> Hi, Mathias,
>>> 
>>> On Fri, 2010-11-12 at 06:18 +0800, Mathias Krause wrote:
>>>> All test were run five times in a row using a 256 bit key and doing i/o
>>>> to the block device in chunks of 1MB. The numbers are MB/s.
>>>> 
>>>> x86 (i586 variant):
>>>>       1. run  2. run  3. run  4. run  5. run    mean
>>>> ECB:      93.9    93.9    94.0    93.5    93.8    93.8
>>>> CBC:      84.9    84.8    84.9    84.9    84.8    84.8
>>>> XTS:     108.2   108.3   109.6   108.3   108.9   108.6
>>>> LRW:     105.0   105.0   105.1   105.1   105.1   105.0
>>>> 
>>>> x86 (AES-NI), v3 of the patch:
>>>>       1. run  2. run  3. run  4. run  5. run    mean
>>>> ECB:     124.8   120.8   124.5   120.6   124.5   123.0
>>>> CBC:     112.6   109.6   112.6   110.7   109.4   110.9 
>>>> XTS:     221.6   221.1   220.9   223.5   224.4   222.3
>>>> LRW:     206.2   209.7   207.4   203.7   209.3   207.2
>>>> 
>>>> x86 (AES-NI), v4 of the patch:
>>>>       1. run  2. run  3. run  4. run  5. run    mean
>>>> ECB:     122.5   121.2   121.6   125.7   125.5   123.3
>>>> CBC:     259.5   259.2   261.2   264.0   267.6   262.3 
>>>> XTS:     225.1   230.7   220.6   217.9   216.3   222.1
>>>> LRW:     202.7   202.8   210.6   208.9   202.7   205.5
>>>> 
>>>> Comparing the values for the CBC variant between v3 and v4 of the patch
>>>> shows that porting the CBC variant to x86 more then doubled the
>>>> performance so the little bit ugly #ifdefed code is worth the effort.
>>>> 
>>>> x86-64 (old):
>>>>       1. run  2. run  3. run  4. run  5. run    mean
>>>> ECB:     121.4   120.9   121.1   121.2   120.9   121.1
>>>> CBC:     282.5   286.3   281.5   282.0   294.5   285.3
>>>> XTS:     263.6   260.3   263.0   267.0   264.6   263.7
>>>> LRW:     249.6   249.8   250.5   253.4   252.2   251.1
>>>> 
>>>> x86-64 (new):
>>>>       1. run  2. run  3. run  4. run  5. run    mean
>>>> ECB:     122.1   122.0   122.0   127.0   121.9   123.0
>>>> CBC:     291.2   286.2   295.6   291.4   289.9   290.8
>>>> XTS:     263.3   264.4   264.5   264.2   270.4   265.3
>>>> LRW:     254.9   252.3   253.6   258.2   257.5   255.3
>>>> 
>>>> Comparing the mean values gives us:
>>>> 
>>>> x86:     i586   aes-ni    delta
>>>> ECB:     93.8    123.3   +31.4%
>>> 
>>> Why the improvement of ECB is so small? I can not understand it. It
>>> should be as big as CBC.
>> 
>> I don't know why the ECB variant is so slow compared to the other variants.
>> But it is so even for the current x86-64 version. See the above values for
>> "x86-64 (old)". I setup dm-crypt for this test like this:
>> # cryptsetup -c aes-ecb-plain -d /dev/urandom create cfs /dev/loop0
>> 
>> What where the numbers you measured in your tests while developing the
>> x86-64 version?
> 
> Can't remember the number. Do you have interest to dig into the issue?

Sure. Increasing performance is always a good thing to do. :)

Best regards,
Mathias--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux