crypto: Add prefetching for src and dst
Adding prefetching to openssl plugin improves both sync and async mode
ipsec performance by more than 5% on N1 ampere.
Sync mode (1420b)
core count old (MPPS) new (MPPS) %diff
1c 0.972 1.01 3.90
2c 1.91 2.02 5.87
3c 2.86 3.04 6.03
Async mode (1420b)
core count old (MPPS) new (MPPS) %diff
1c 1.296 1.37 5.70
2c 2.58 2.753 6.70
3c 3.74 3.9 4.27
6c 7.52 7.832 4.14
Type: improvement
Change-Id: Ieef22c37e1330ac9f8b7e09a25c24162516b6c26
Signed-off-by: Niyaz Murshed <niyaz.murshed@arm.com>
This commit is contained in:
@@ -219,6 +219,17 @@ openssl_ops_enc_aead (vlib_main_t *vm, vnet_crypto_op_t *ops[],
|
||||
vnet_crypto_op_t *op = ops[i];
|
||||
int len = 0;
|
||||
|
||||
if (i + 2 < n_ops)
|
||||
{
|
||||
CLIB_PREFETCH (ops[i + 1]->src, 4 * CLIB_CACHE_PREFETCH_BYTES, LOAD);
|
||||
CLIB_PREFETCH (ops[i + 1]->dst, 4 * CLIB_CACHE_PREFETCH_BYTES,
|
||||
STORE);
|
||||
|
||||
CLIB_PREFETCH (ops[i + 2]->src, 4 * CLIB_CACHE_PREFETCH_BYTES, LOAD);
|
||||
CLIB_PREFETCH (ops[i + 2]->dst, 4 * CLIB_CACHE_PREFETCH_BYTES,
|
||||
STORE);
|
||||
}
|
||||
|
||||
ctx = ptd->evp_cipher_enc_ctx[op->key_index];
|
||||
EVP_EncryptInit_ex (ctx, 0, 0, NULL, op->iv);
|
||||
if (op->aad_len)
|
||||
|
||||
Reference in New Issue
Block a user