[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/6] crypto: improve performance of XTS cipher m
From: |
Marc-André Lureau |
Subject: |
Re: [Qemu-devel] [PATCH 0/6] crypto: improve performance of XTS cipher mode |
Date: |
Tue, 9 Oct 2018 17:59:46 +0400 |
Hi
On Tue, Oct 9, 2018 at 4:57 PM Daniel P. Berrangé <address@hidden> wrote:
>
> The XTS cipher mode is significantly slower than CBC mode. This series
> approximately doubles the XTS performance which will improve the I/O
> rate for LUKS disks.
>
> Daniel P. Berrangé (6):
> crypto: expand algorithm coverage for cipher benchmark
> crypto: remove code duplication in tweak encrypt/decrypt
> crypto: introduce a xts_uint128 data type
> crypto: convert xts_tweak_encdec to use xts_uint128 type
> crypto: convert xts_mult_x to use xts_uint128 type
> crypto: annotate xts_tweak_encdec as inlineable
>
> crypto/xts.c | 147 ++++++++++++++-----------------
> tests/benchmark-crypto-cipher.c | 149 +++++++++++++++++++++++++++-----
> 2 files changed, 191 insertions(+), 105 deletions(-)
By using a constant amount of data to process, it's easier to measure
perfomance with perf stat:
diff --git a/tests/benchmark-crypto-cipher.c b/tests/benchmark-crypto-cipher.c
index a8325a9510..32a19987e6 100644
--- a/tests/benchmark-crypto-cipher.c
+++ b/tests/benchmark-crypto-cipher.c
@@ -65,7 +65,7 @@ static void test_cipher_speed(size_t chunk_size,
chunk_size,
&err) == 0);
total += chunk_size;
- } while (g_test_timer_elapsed() < 1.0);
+ } while (total / MiB < 500);
total /= MiB;
g_print("Enc chunk %zu bytes ", chunk_size);
@@ -80,7 +80,7 @@ static void test_cipher_speed(size_t chunk_size,
chunk_size,
&err) == 0);
total += chunk_size;
- } while (g_test_timer_elapsed() < 1.0);
+ } while (total / MiB < 500);
On my laptop: before your series:
3701.625051 task-clock:u (msec) # 0.997 CPUs
utilized
0 context-switches:u # 0.000 K/sec
0 cpu-migrations:u # 0.000 K/sec
438 page-faults:u # 0.118 K/sec
10,823,305,761 cycles:u # 2.924 GHz
29,774,419,538 instructions:u # 2.75 insn per
cycle
4,919,267,782 branches:u # 1328.948 M/sec
32,923,105 branch-misses:u # 0.67% of all
branches
3.712998264 seconds time elapsed
Ater:
2151.201355 task-clock:u (msec) # 1.000 CPUs
utilized
0 context-switches:u # 0.000 K/sec
0 cpu-migrations:u # 0.000 K/sec
431 page-faults:u # 0.200 K/sec
7,073,869,618 cycles:u # 3.288 GHz
8,573,595,534 instructions:u # 1.21 insn per
cycle
1,576,926,668 branches:u # 733.045 M/sec
148,987 branch-misses:u # 0.01% of all
branches
2.151520872 seconds time elapsed
--
Marc-André Lureau
- Re: [Qemu-devel] [PATCH 5/6] crypto: convert xts_mult_x to use xts_uint128 type, (continued)
[Qemu-devel] [PATCH 6/6] crypto: annotate xts_tweak_encdec as inlineable, Daniel P . Berrangé, 2018/10/09
[Qemu-devel] [PATCH 4/6] crypto: convert xts_tweak_encdec to use xts_uint128 type, Daniel P . Berrangé, 2018/10/09
Re: [Qemu-devel] [PATCH 0/6] crypto: improve performance of XTS cipher mode,
Marc-André Lureau <=