Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
d8529f3
uadk: clear the literal length in the ctx of all LZ77 algorithms
Apr 27, 2026
3b03ee7
uadk: fix the status of compression when store buffer is not yet cleared
Apr 27, 2026
70503c4
uadk: move tail packet appending function to hisi_comp.c
Apr 27, 2026
f1e5063
uadk: delete redundant print messages for v1/hisi_zip_udrv
Apr 27, 2026
e98fd5a
uadk/v1: fix long timeout of asymmetric algorithm in sync mode during…
Apr 27, 2026
93d176a
uadk: fix for hashjoin key align size
lin755 Apr 27, 2026
287c055
uadk: clean code for wd_agg
lin755 Apr 27, 2026
c793a2e
uadk: bugfix some code parameter issues.
Apr 27, 2026
3f73424
uadk: support empty final block for raw DEFLATE in stream mode
Apr 27, 2026
aa1c9d9
uadk: bugfix big number comparison issues
Apr 27, 2026
2d7c33d
uadk: bugfix HPRE parameter comparison method
Apr 27, 2026
dd55fb3
uadk: modify the return value of rsa_prepare_key() in hpre
May 8, 2026
b39db67
uadk: remove unused inner async poll
May 22, 2026
4d275ad
uadk: fix memory leak when wd_get_alg_type() fails
May 22, 2026
d804c50
uadk: check the strdup() return value
May 22, 2026
eac89b9
uadk/v1: replaced the deprecated <sys/poll.h> with <poll.h>
May 22, 2026
3128f1c
uadk:update compression algorithm memory pool creation
May 22, 2026
560ac17
uadk: update compression algorithm memory pool creation
May 22, 2026
213686e
uadk/v1:fix integer overflow problem
May 22, 2026
9ad2557
uadk: remove redundant check
May 22, 2026
25e2ab7
uadk: include missing header file
May 22, 2026
26721e6
uadk: move library dependencies to LIBADD
May 22, 2026
dac3a86
uadk - fix the log frequency limit function
May 22, 2026
8d7ec04
uadk: release v2.11
Jun 30, 2026
988d905
uadk/v1: modify error logging to debug level in file path check
Jul 14, 2026
36a7651
uadk: fix CCM algorithm long packet failure
Aug 13, 2026
ce8e342
uadk/v1: fix CCM algorithm long packet failure
Aug 13, 2026
3b877e5
uadk: rewrite scheduler with scheduling domain solution
Aug 25, 2026
4a698fb
uadk: add algorithm driver registration framework
Aug 25, 2026
28cc7b1
uadk: add common driver layer for queue alloc/free
Aug 25, 2026
5926878
uadk: add core framework support for heterogeneous scheduling
Aug 25, 2026
28840d8
uadk: adapt cipher module to new registration framework
Aug 25, 2026
a3bd303
uadk: adapt aead module to new registration framework
Aug 25, 2026
06f4915
uadk: adapt asymmetric crypto module to new registration framework
Aug 25, 2026
e62d35a
uadk: adapt compression module to new registration framework
Aug 25, 2026
0d6b8c7
uadk: adapt UDMA module to new registration framework
lin755 Aug 25, 2026
72b6b74
uadk: adapt DAE module to new registration framework
lin755 Aug 25, 2026
61b4507
uadk: adapt digest module to new registration framework
lin755 Aug 25, 2026
406084e
uadk_tool: convert GB2312 full-width comma to mojibake UTF-8
IAMHCHCH Aug 25, 2026
28a2ec5
uadk_tool: remove dead error branch in zip_uadk_benchmark init_ctx_co…
IAMHCHCH Aug 25, 2026
2046123
uadk: adapt uadk_tool to new registration framework
Aug 25, 2026
ca7ece0
uadk: fix ZIP stream EAGAIN return and LZ4 input limit
Aug 25, 2026
fd0589b
uadk: add WD_INIT2_MAX_RETRY limit for init2
Aug 25, 2026
e954ece
uadk: add debug configure option for full stack traces
lin755 Aug 25, 2026
c2f52a3
uadk: remove redundant code and unused variables
Aug 25, 2026
b01e18e
uadk: fix big-number sign compare and add non-ARM HWCAP fallbacks
Aug 28, 2026
2d8ef5a
uadk_tool: fix segfault in digest/aead init1 from uninitialized wd_sched
Aug 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 53 additions & 29 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -1,8 +1,25 @@
ACLOCAL_AMFLAGS = -I m4 -I./include
AUTOMAKE_OPTIONS = foreign subdir-objects
AM_CFLAGS=-Wall -Werror -fno-strict-aliasing -I$(top_srcdir)/include
AM_CFLAGS+=-fPIC -fPIE -pie -fstack-protector-strong -D_FORTIFY_SOURCE=2 \
-O2 -ftrapv -Wl,-z,relro,-z,now -Wl,-s
AM_CFLAGS=-std=gnu11 -Wall -Werror -Wextra -Wno-unused-parameter -Wfloat-equal \
-fno-common -fno-strict-aliasing -I$(top_srcdir)/include
AM_CFLAGS+=-fPIC -fPIE -pie -fstack-protector-strong -ftrapv -Wl,-z,relro,-z,now

if WD_DEBUG
# Debug build: keep symbols, disable optimization and stripping for full stack traces
AM_CFLAGS+=-g -O0 -fno-omit-frame-pointer -DDEBUG
else
# Release build: optimize and strip symbols
AM_CFLAGS+=-O2 -D_FORTIFY_SOURCE=2 -Wl,-s
endif
AM_CFLAGS += -Wall -Wuninitialized -Wno-error -Wno-error=format -Wundef \
-Wunused -Wdate-time -Wfloat-equal -Wshadow -Wvla -Wdisabled-optimization \
-Wempty-body -Wignored-qualifiers -Wimplicit-fallthrough=3 -Wtype-limits \
-Wshift-negative-value -Wswitch-default -Wframe-larger-than=8192 -Wshift-overflow=2 \
-Wwrite-strings -Wmissing-format-attribute -Wformat-nonliteral -Wduplicated-cond \
-Wtrampolines -Wlogical-op -Wsuggest-attribute=format -Wduplicated-branches \
-Wmissing-include-dirs -Wformat-signedness -Wmissing-declarations -Wreturn-local-addr \
-Wredundant-decls -Wfloat-conversion -Wmissing-prototypes -Wstrict-prototypes

CLEANFILES =

if WITH_LOG_FILE
Expand All @@ -22,13 +39,13 @@ endif # WITH_LOG_FILE
# y = minor
# z = revision
MAJOR = 2
MINOR = 10
MINOR = 11
REVISION = 0
UADK_VERSION = -version-number ${MAJOR}:${MINOR}:${REVISION}

DAY = 10
MONTH = Dec
YEAR = 2025
DAY = 30
MONTH = June
YEAR = 2026
AM_CFLAGS+= -DUADK_VERSION_NUMBER="\"UADK version: ${MAJOR}.${MINOR}.${REVISION}\""
AM_CFLAGS+= -DUADK_RELEASED_TIME="\"Released ${MONTH} ${DAY}, ${YEAR}\""

Expand All @@ -40,8 +57,8 @@ pkginclude_HEADERS = include/wd.h include/wd_internal.h include/wd_cipher.h incl
include/wd_udma.h include/wd_join_gather.h \
include/wd_bmm.h

nobase_pkginclude_HEADERS = v1/wd.h v1/wd_cipher.h v1/wd_aead.h v1/uacce.h v1/wd_dh.h \
v1/wd_digest.h v1/wd_rsa.h v1/wd_bmm.h
nobase_pkginclude_HEADERS=v1/wd.h v1/wd_cipher.h v1/wd_aead.h v1/wd_dh.h v1/wd_digest.h \
v1/wd_rsa.h v1/wd_bmm.h v1/wd_ecc.h v1/wd_comp.h

lib_LTLIBRARIES=libwd.la libwd_comp.la libwd_crypto.la libwd_dae.la libwd_udma.la

Expand Down Expand Up @@ -70,17 +87,19 @@ libwd_la_SOURCES=wd.c wd_mempool.c wd_bmm.c wd_bmm.h wd.h wd_alg.c wd_alg.h \
v1/drv/hisi_sec_udrv.c v1/drv/hisi_sec_udrv.h

libwd_udma_la_SOURCES=wd_udma.h wd_udma_drv.h wd_udma.c \
wd_util.c wd_util.h wd_sched.c wd_sched.h wd.c wd.h
wd_util.c wd_util.h wd_sched.c wd_sched.h wd.c wd.h

libwd_dae_la_SOURCES=wd_dae.h wd_agg.h wd_agg_drv.h wd_agg.c wd_join_gather.h wd_join_gather_drv.h wd_join_gather.c \
libwd_dae_la_SOURCES=wd_dae.h wd_agg.h wd_agg_drv.h wd_agg.c \
wd_join_gather.h wd_join_gather_drv.h wd_join_gather.c \
wd_util.c wd_util.h wd_sched.c wd_sched.h wd.c wd.h

libwd_comp_la_SOURCES=wd_comp.c wd_comp.h wd_comp_drv.h wd_util.c wd_util.h \
wd_sched.c wd_sched.h wd.c wd.h wd_zlibwrapper.c

libhisi_zip_la_SOURCES=drv/hisi_comp.c hisi_comp.h drv/hisi_qm_udrv.c \
drv/hisi_comp_huf.c drv/hisi_comp_huf.h \
hisi_qm_udrv.h wd_comp_drv.h
hisi_qm_udrv.h wd_comp_drv.h \
drv/wd_drv.h drv/wd_drv.c

libwd_crypto_la_SOURCES=wd_cipher.c wd_cipher.h wd_cipher_drv.h \
wd_aead.c wd_aead.h wd_aead_drv.h \
Expand All @@ -94,46 +113,51 @@ libwd_crypto_la_SOURCES=wd_cipher.c wd_cipher.h wd_cipher_drv.h \

libhisi_sec_la_SOURCES=drv/hisi_sec.c drv/hisi_qm_udrv.c \
lib/crypto/aes.c lib/crypto/sm4.c lib/crypto/galois.c \
hisi_qm_udrv.h wd_cipher_drv.h wd_aead_drv.h aes.h sm4.h galois.h
hisi_qm_udrv.h wd_cipher_drv.h wd_aead_drv.h aes.h sm4.h galois.h \
drv/wd_drv.h drv/wd_drv.c

libhisi_hpre_la_SOURCES=drv/hisi_hpre.c drv/hisi_qm_udrv.c \
hisi_qm_udrv.h
hisi_qm_udrv.h wd_rsa_drv.h wd_dh_drv.h wd_ecc_drv.h \
drv/wd_drv.h drv/wd_drv.c

if ARCH_ARM64
libisa_ce_la_SOURCES=arm_arch_ce.h drv/isa_ce_sm3.c drv/isa_ce_sm3_armv8.S isa_ce_sm3.h \
drv/isa_ce_sm4.c drv/isa_ce_sm4_armv8.S drv/isa_ce_sm4.h
drv/isa_ce_sm4.c drv/isa_ce_sm4_armv8.S drv/isa_ce_sm4.h wd_util.c wd_util.h \
drv/wd_drv.h drv/wd_drv.c

libisa_sve_la_SOURCES=drv/hash_mb/hash_mb.c wd_digest_drv.h drv/hash_mb/hash_mb.h \
drv/hash_mb/sm3_sve_common.S drv/hash_mb/sm3_mb_asimd_x1.S \
drv/hash_mb/sm3_mb_asimd_x4.S drv/hash_mb/sm3_mb_sve.S \
drv/hash_mb/md5_sve_common.S drv/hash_mb/md5_mb_asimd_x1.S \
drv/hash_mb/md5_mb_asimd_x4.S drv/hash_mb/md5_mb_sve.S
drv/hash_mb/md5_mb_asimd_x4.S drv/hash_mb/md5_mb_sve.S \
drv/wd_drv.h drv/wd_drv.c
endif

libhisi_dae_la_SOURCES=drv/hisi_dae.c hisi_dae.h drv/hisi_qm_udrv.c \
hisi_qm_udrv.h drv/hisi_dae_join_gather.c drv/hisi_dae_common.c
hisi_qm_udrv.h drv/hisi_dae_join_gather.c drv/hisi_dae_common.c \
drv/wd_drv.h drv/wd_drv.c

libhisi_udma_la_SOURCES=drv/hisi_udma.c drv/hisi_qm_udrv.c \
hisi_qm_udrv.h
hisi_qm_udrv.h drv/wd_drv.h drv/wd_drv.c

if WD_STATIC_DRV
AM_CFLAGS += -DWD_STATIC_DRV -fPIC
AM_CFLAGS += -DWD_NO_LOG

libwd_la_LIBADD = $(libwd_la_OBJECTS) -ldl -lnuma
libwd_la_LIBADD = $(libwd_la_OBJECTS) -ldl -lnuma -lpthread -lrt

libwd_comp_la_LIBADD = $(libwd_la_OBJECTS) -ldl -lnuma
libwd_comp_la_DEPENDENCIES = libwd.la
libwd_comp_la_LIBADD = $(libwd_la_OBJECTS) $(libhisi_zip_la_OBJECTS) -ldl -lpthread -lnuma
libwd_comp_la_DEPENDENCIES = libwd.la libhisi_zip.la

libhisi_zip_la_LIBADD = -ldl
libhisi_zip_la_LIBADD = -ldl -lpthread

libwd_crypto_la_LIBADD = -lwd -ldl -lnuma -lm -lpthread
libwd_crypto_la_LIBADD = -lwd -ldl -lnuma -lpthread
libwd_crypto_la_DEPENDENCIES = libwd.la

libwd_udma_la_LIBADD = $(libwd_la_OBJECTS) -ldl -lnuma -lm -lpthread
libwd_udma_la_DEPENDENCIES = libwd.la

libwd_dae_la_LIBADD = $(libwd_la_OBJECTS) -ldl -lnuma
libwd_dae_la_LIBADD = $(libwd_la_OBJECTS) -ldl -lnuma -lm -lpthread
libwd_dae_la_DEPENDENCIES = libwd.la

libhisi_sec_la_LIBADD = $(libwd_la_OBJECTS) $(libwd_crypto_la_OBJECTS)
Expand Down Expand Up @@ -164,19 +188,19 @@ UADK_V1_SYMBOL= -Wl,--version-script,$(top_srcdir)/v1/libwd.map
libwd_la_LDFLAGS=$(UADK_VERSION) $(UADK_WD_SYMBOL) $(UADK_V1_SYMBOL)
libwd_la_LIBADD= -ldl -lnuma

libwd_comp_la_LIBADD= -lwd -ldl -lnuma
libwd_comp_la_LDFLAGS=$(UADK_VERSION) $(UADK_COMP_SYMBOL) -lpthread
libwd_comp_la_LIBADD= -lwd -ldl -lnuma -lpthread
libwd_comp_la_LDFLAGS=$(UADK_VERSION) $(UADK_COMP_SYMBOL)
libwd_comp_la_DEPENDENCIES= libwd.la

libwd_crypto_la_LIBADD= -lwd -ldl -lnuma
libwd_crypto_la_LDFLAGS=$(UADK_VERSION) $(UADK_CRYPTO_SYMBOL) -lpthread
libwd_crypto_la_LIBADD= -lwd -ldl -lnuma -lpthread
libwd_crypto_la_LDFLAGS=$(UADK_VERSION) $(UADK_CRYPTO_SYMBOL)
libwd_crypto_la_DEPENDENCIES= libwd.la

libwd_udma_la_LIBADD= -lwd -ldl -lnuma -lm -lpthread
libwd_udma_la_LDFLAGS=$(UADK_VERSION) $(UADK_DAE_SYMBOL)
libwd_udma_la_DEPENDENCIES= libwd.la

libwd_dae_la_LIBADD= -lwd -ldl -lnuma -lm
libwd_dae_la_LIBADD= -lwd -ldl -lnuma -lm -lpthread
libwd_dae_la_LDFLAGS=$(UADK_VERSION) $(UADK_DAE_SYMBOL)
libwd_dae_la_DEPENDENCIES= libwd.la

Expand Down
19 changes: 13 additions & 6 deletions conf.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,24 @@

# Build UADK into static library
COMPILE_TYPE="--disable-static --enable-shared"
DEBUG_TYPE=""

# These two parameters could be in arbitary sequence
if [[ $1 && $1 = "--static" ]] || [[ $2 && $2 = "--static" ]]; then
echo "Configure to static compile!"
COMPILE_TYPE="--enable-static --disable-shared --with-static_drv"
fi
# These parameters could be in arbitary sequence
for arg in "$1" "$2" "$3"; do
if [[ $arg = "--static" ]]; then
echo "Configure to static compile!"
COMPILE_TYPE="--enable-static --disable-shared --with-static_drv"
elif [[ $arg = "--debug" ]]; then
echo "Configure to debug compile (with symbols, no optimization)!"
DEBUG_TYPE="--enable-debug=yes"
fi
done

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes ./configure -v \
--enable-perf=yes \
--host aarch64-linux-gnu \
--target aarch64-linux-gnu \
--includedir=/usr/local/include/ \
$COMPILE_TYPE
$COMPILE_TYPE \
$DEBUG_TYPE
12 changes: 11 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
AC_PREREQ([2.69])
AC_INIT([uadk], [2.10], [liguozhu@hisilicon.com])
AC_INIT([uadk], [2.11], [liguozhu@hisilicon.com])
AC_CONFIG_SRCDIR([wd.c])
AM_INIT_AUTOMAKE([1.10 no-define])

Expand Down Expand Up @@ -34,6 +34,16 @@ AC_ARG_ENABLE([debug-log],
[debug_log=false]
)

AC_ARG_ENABLE([debug],
AS_HELP_STRING([--enable-debug], [build with -g -O0 and no symbol stripping for full stack traces]),
[ AS_IF([test "x$enable_debug" = "xyes"],
[wd_debug=true],
[wd_debug=false])
],
[wd_debug=false]
)
AM_CONDITIONAL([WD_DEBUG], [test "x$wd_debug" = "xtrue"])

AC_ARG_ENABLE([perf],
AS_HELP_STRING([--disble-perf], [enable measuring performance]),
[ AS_IF([test "x$enable_perf" = "xyes"],
Expand Down
18 changes: 18 additions & 0 deletions docs/ReleaseNotes.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
# UADK Release v2.11 June 2026

## Features:
- Device Monitoring: Support obtaining device bandwidth utilization through MMIO space, reducing sysfs file reads and system calls
- uadk_tool: Support get device usage information
- Compression: Support empty final block for raw DEFLATE in stream mode
- DAE: hash agg 8B type adaptation chip supports 8 columns
- Driver: Save algorithm type during driver registration for efficient driver lookup by algorithm type

## Fixes:
- Memory: Fixed memory leak when wd_get_alg_type() fails and update compression memory pool creation
- HPRE: Fix big number comparison, parameter comparison method, and rsa_prepare_key() return value
- ZIP: Fix compression status when store buffer is not cleared, LZ77 literal length, CRC error warning, context data clearing for ended streams, and lz77_zstd_price mininum output length calculation
- DAE: Fix hashjoin key align size
- Core: Optimize NUMA node acquisition performance, fix hw sgl, fix log limit, set fd for soft ctx, and add empty size for hash table row size
- Build: Fix wd_alg.h compilation failure, include missing headers, and move library dependencies to LIBADD
- Code Quality: Remove redundant check, delete redundant print messages, and clean code for wd_agg


# UADK Release v2.10 Dec 2025

Expand Down
7 changes: 0 additions & 7 deletions docs/wd_environment_variable
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,6 @@ offer process level WD configures.
1. WD environment variables define
==================================

WD_<alg>_ASYNC_POLL_EN
----------------------

Define if enble polling threads in WD. WD_<alg>_ASYNC_POLL_EN=1 means enable
polling threads in WD, otherwise caller should poll finished request by
WD APIs.

WD_COMP_CTX_NUM
-----------------

Expand Down
Loading
Loading