From d79164de0c1b227d55f90d1d33c9538864ff399a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4?= Date: Tue, 8 Jul 2025 12:31:21 +0000 Subject: [PATCH] fix: support 255 SGL buffer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 白凤 --- KAELz4/src/kaelz4_adapter.h | 2 +- KAELz4/src/v1/kaelz4_ctx.h | 2 +- KAELz4/test/kzip/compress_ctx.h | 6 +++--- KAELz4/test/kzip/main.c | 19 ++++++++++--------- ...adk-support-sgl-zero-copy-for-kaelz4.patch | 2 +- 5 files changed, 16 insertions(+), 15 deletions(-) diff --git a/KAELz4/src/kaelz4_adapter.h b/KAELz4/src/kaelz4_adapter.h index ce670e2..a330a25 100644 --- a/KAELz4/src/kaelz4_adapter.h +++ b/KAELz4/src/kaelz4_adapter.h @@ -24,7 +24,7 @@ enum { #define KAELZ4_TASK_QUEUE_DEPTH 1024 #define ENQUEUE_TIME_OUT_US 1000000 #define SMALL_BLOCK_SIZE (64 * 1024) -#define SMALL_BLOCK_MAX_BUF_NUM (60) +#define SMALL_BLOCK_MAX_BUF_NUM (255) #define ASYNC_DEQUEUE_PROCESS_DEFAULT_BUDGET 1 #define ASYNC_POLLING_DEFAULT_BUDGET 1 diff --git a/KAELz4/src/v1/kaelz4_ctx.h b/KAELz4/src/v1/kaelz4_ctx.h index 7fb5109..dc3060f 100644 --- a/KAELz4/src/v1/kaelz4_ctx.h +++ b/KAELz4/src/v1/kaelz4_ctx.h @@ -12,7 +12,7 @@ #include "uadk/v1/wd_comp.h" #define MAX_KAE_CTX_DEPTH 64 -#define REQ_BUFFER_MAX 60 // uadk支持最大的sgl buf数量 +#define REQ_BUFFER_MAX 255 // uadk支持最大的sgl buf数量 enum kaelz4_comp_status { KAEZIP_COMP_INIT = 0, diff --git a/KAELz4/test/kzip/compress_ctx.h b/KAELz4/test/kzip/compress_ctx.h index 0b54cf6..0a01869 100644 --- a/KAELz4/test/kzip/compress_ctx.h +++ b/KAELz4/test/kzip/compress_ctx.h @@ -39,9 +39,9 @@ struct __attribute__((aligned(64))) compress_param { struct kaelz4_buffer_list tuple; uint64_t start_time; volatile unsigned int done; - struct kaelz4_buffer src_buf[128]; - struct kaelz4_buffer dst_buf[128]; - struct kaelz4_buffer tuple_buf[128]; + struct kaelz4_buffer src_buf[1024]; + struct kaelz4_buffer dst_buf[1024]; + struct kaelz4_buffer tuple_buf[1024]; }; struct compress_ctx { diff --git a/KAELz4/test/kzip/main.c b/KAELz4/test/kzip/main.c index f50bae9..8fc38ed 100644 --- a/KAELz4/test/kzip/main.c +++ b/KAELz4/test/kzip/main.c @@ -1545,12 +1545,12 @@ int main(int argc, char **argv) return -1; } - struct compress_ctx ctx; - compress_ctx_init(&ctx, compress, inflight_num, chunk_len, algorithm, is_test_crc); - ctx.loop_times = loop_times; + struct compress_ctx *ctx = malloc(sizeof(struct compress_ctx)); + compress_ctx_init(ctx, compress, inflight_num, chunk_len, algorithm, is_test_crc); + ctx->loop_times = loop_times; - if (!ctx.compress_or_decompress && g_file_chunk_size > 0 && threadNum == 1) { // 如果是分片解压,单独处理 - ret = start_work_decompress(&ctx, in_filename, out_filename, multi, window_bits, level); + if (!ctx->compress_or_decompress && g_file_chunk_size > 0 && threadNum == 1) { // 如果是分片解压,单独处理 + ret = start_work_decompress(ctx, in_filename, out_filename, multi, window_bits, level); } else { if (threadNum > 1) { pthread_t threads[threadNum]; @@ -1574,15 +1574,16 @@ int main(int argc, char **argv) pthread_join(threads[j], NULL); } } else { - ret = start_work(&ctx, in_filename, out_filename, multi, window_bits, level); + ret = start_work(ctx, in_filename, out_filename, multi, window_bits, level); } } - if (ctx.sess) - KAELZ4_destroy_async_compress_session(ctx.sess); + if (ctx->sess) + KAELZ4_destroy_async_compress_session(ctx->sess); else LZ4_teardown_async_compress(); - compress_ctx_destory(&ctx); + compress_ctx_destory(ctx); + free(ctx); return ret; } diff --git a/scripts/patches/0008-uadk-support-sgl-zero-copy-for-kaelz4.patch b/scripts/patches/0008-uadk-support-sgl-zero-copy-for-kaelz4.patch index 8f9c337..f7f1fda 100644 --- a/scripts/patches/0008-uadk-support-sgl-zero-copy-for-kaelz4.patch +++ b/scripts/patches/0008-uadk-support-sgl-zero-copy-for-kaelz4.patch @@ -78,7 +78,7 @@ index cb3b8ee..51dbe9c 100644 + struct wd_sglpool *sgl_pool = pool; + + sgl->buf_num = buf_list->buf_num; -+ sgl->sge_num = buf_list->buf_num + 1; ++ sgl->sge_num = buf_list->buf_num; + sgl->pool = pool; + for (int i = 0; i < sgl->buf_num; i++) { + sgl->sge[i].flag = 0; -- Gitee