libwd/0067-uadk-v1-fix-for-cookie-initialization.patch

56 lines
1.7 KiB
Diff
Raw Normal View History

From 4b10036f1504396fd61fac2ada45c8bc84cfd77e Mon Sep 17 00:00:00 2001
From: Wenkai Lin <linwenkai6@hisilicon.com>
Date: Thu, 24 Feb 2022 11:22:26 +0800
Subject: [PATCH 73/76] uadk: v1: fix for cookie initialization
If ctx message number is too big, it takes a lot of time
to initialize each cookies and drag performance, so this
patch reduce it from 1024 to 64.
We also found calloc in wd_init_cookie_pool use to much cpu
when it does memset zero, which is not unnecessary, so
replace it with malloc is better.
Signed-off-by: Wenkai Lin <linwenkai6@hisilicon.com>
---
v1/wd_util.c | 7 ++++---
v1/wd_util.h | 2 +-
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/v1/wd_util.c b/v1/wd_util.c
index 616bf69..715804c 100644
--- a/v1/wd_util.c
+++ b/v1/wd_util.c
@@ -85,12 +85,13 @@ void wd_free_id(__u8 *buf, __u32 size, __u32 id, __u32 id_max)
int wd_init_cookie_pool(struct wd_cookie_pool *pool,
__u32 cookies_size, __u32 cookies_num)
{
- pool->cookies = calloc(1, cookies_size * cookies_num + cookies_num);
+ __u64 total_size = cookies_size * cookies_num;
+
+ pool->cookies = malloc(total_size + cookies_num);
if (!pool->cookies)
return -WD_ENOMEM;
- pool->cstatus = (void *)((uintptr_t)pool->cookies +
- cookies_num * cookies_size);
+ pool->cstatus = (void *)((uintptr_t)pool->cookies + total_size);
pool->cookies_num = cookies_num;
pool->cookies_size = cookies_size;
pool->cid = 0;
diff --git a/v1/wd_util.h b/v1/wd_util.h
index 1ac157e..78b91ee 100644
--- a/v1/wd_util.h
+++ b/v1/wd_util.h
@@ -36,7 +36,7 @@
#include "v1/wd_ecc.h"
#include "v1/wd_adapter.h"
-#define WD_CTX_MSG_NUM 1024
+#define WD_CTX_MSG_NUM 64
#define WD_HPRE_CTX_MSG_NUM 64
#define WD_RNG_CTX_MSG_NUM 256
#define WD_MAX_CTX_NUM 256
--
2.25.1