> Hi, Akhil > > On Wed, 21 May 2025 at 20:39, Akhil Goyal <gak...@marvell.com> wrote: > > > > > Realize async mode to replace sync mode for better performance > > > > > > Zhangfei Gao (2): > > > compress/uadk: use async mode to replace sync mode > > > crypto/uadk: use async mode to replace sync mode > > > > > > drivers/compress/uadk/uadk_compress_pmd.c | 107 ++++-- > > > .../compress/uadk/uadk_compress_pmd_private.h | 2 +- > > > drivers/crypto/uadk/uadk_crypto_pmd.c | 321 +++++++++++++----- > > > drivers/crypto/uadk/uadk_crypto_pmd_private.h | 8 +- > > > 4 files changed, 318 insertions(+), 120 deletions(-) > > > > This patchset is not building for me atleast. Please fix compilation. > > > > ninja: Entering directory `./build-gcc-static' > > [2/31] Compiling C object > drivers/libtmp_rte_compress_uadk.a.p/compress_uadk_uadk_compress_pmd.c. > o > > FAILED: > drivers/libtmp_rte_compress_uadk.a.p/compress_uadk_uadk_compress_pmd.c. > o > > ccache gcc -Idrivers/libtmp_rte_compress_uadk.a.p -Idrivers -I../drivers - > Idrivers/compress/uadk -I../drivers/compress/uadk -Ilib/compressdev - > I../lib/compressdev -Ilib/eal/common -I../lib/eal/common -I. -I.. -Iconfig - > I../config -Ilib/eal/include -I../lib/eal/include -Ilib/eal/linux/include - > I../lib/eal/linux/include -Ilib/eal/x86/include -I../lib/eal/x86/include - > I../kernel/linux -Ilib/eal -I../lib/eal -Ilib/kvargs -I../lib/kvargs > -Ilib/log -I../lib/log - > Ilib/metrics -I../lib/metrics -Ilib/telemetry -I../lib/telemetry -Ilib/mbuf - > I../lib/mbuf -Ilib/mempool -I../lib/mempool -Ilib/ring -I../lib/ring - > Idrivers/bus/vdev -I../drivers/bus/vdev - > I/home/gakhil/up/uadk/build_x86/include -fdiagnostics-color=always - > D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -O2 -g - > include rte_config.h -Wvla -Wcast-qual -Wdeprecated -Wformat -Wformat- > nonliteral -Wformat-security -Wmissing-declarations -Wmissing-prototypes - > Wnested-externs -Wold-style-definition -Wpointer-arith -Wsign-compare - > Wstrict-prototypes -Wundef -Wwrite-strings -Wno-packed-not-aligned -Wno- > missing-field-initializers -D_GNU_SOURCE -fPIC -march=native -mrtm - > DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation > -Wno-address-of-packed-member - > DRTE_LOG_DEFAULT_LOGTYPE=pmd.compress.uadk -MD -MQ > drivers/libtmp_rte_compress_uadk.a.p/compress_uadk_uadk_compress_pmd.c. > o -MF > drivers/libtmp_rte_compress_uadk.a.p/compress_uadk_uadk_compress_pmd.c. > o.d -o > drivers/libtmp_rte_compress_uadk.a.p/compress_uadk_uadk_compress_pmd.c. > o -c ../drivers/compress/uadk/uadk_compress_pmd.c > > ../drivers/compress/uadk/uadk_compress_pmd.c: In function > ‘uadk_compress_pmd_config’: > > ../drivers/compress/uadk/uadk_compress_pmd.c:35:9: error: variable > ‘cparams’ has initializer but incomplete type > > 35 | struct wd_ctx_params cparams = {0}; > > | ^~~~~~~~~~~~~ > > ../drivers/compress/uadk/uadk_compress_pmd.c:35:34: error: excess elements > in struct initializer [-Werror] > > 35 | struct wd_ctx_params cparams = {0}; > > | ^ > > ../drivers/compress/uadk/uadk_compress_pmd.c:35:34: note: (near > initialization for ‘cparams’) > > ../drivers/compress/uadk/uadk_compress_pmd.c:35:23: error: storage size of > ‘cparams’ isn’t known > > 35 | struct wd_ctx_params cparams = {0}; > > | ^~~~~~~ > > ../drivers/compress/uadk/uadk_compress_pmd.c:42:42: error: dereferencing > pointer to incomplete type ‘struct wd_ctx_nums’ > > 42 | ctx_set_num = calloc(WD_DIR_MAX, sizeof(*ctx_set_num)); > > | ^~~~~~~~~~~~ > > ../drivers/compress/uadk/uadk_compress_pmd.c:50:16: error: implicit > declaration of function ‘numa_allocate_nodemask’ [-Werror=implicit-function- > declaration] > > 50 | cparams.bmp = numa_allocate_nodemask(); > > | ^~~~~~~~~~~~~~~~~~~~~~ > > ../drivers/compress/uadk/uadk_compress_pmd.c:50:16: error: nested extern > declaration of ‘numa_allocate_nodemask’ [-Werror=nested-externs] > > ../drivers/compress/uadk/uadk_compress_pmd.c:57:2: error: implicit > declaration of function ‘numa_bitmask_setall’ [-Werror=implicit-function- > declaration] > > 57 | numa_bitmask_setall(cparams.bmp); > > | ^~~~~~~~~~~~~~~~~~~ > > ../drivers/compress/uadk/uadk_compress_pmd.c:57:2: error: nested extern > declaration of ‘numa_bitmask_setall’ [-Werror=nested-externs] > > ../drivers/compress/uadk/uadk_compress_pmd.c:60:14: error: invalid use of > undefined type ‘struct wd_ctx_nums’ > > 60 | ctx_set_num[i].async_ctx_num = UADK_COMP_DEF_CTXS; > > | ^ > > ../drivers/compress/uadk/uadk_compress_pmd.c:62:8: error: implicit > declaration of function ‘wd_comp_init2_’; did you mean ‘wd_comp_init’? [- > Werror=implicit-function-declaration] > > 62 | ret = wd_comp_init2_(alg_name, SCHED_POLICY_RR, TASK_HW, > &cparams); > > | ^~~~~~~~~~~~~~ > > | wd_comp_init > > ../drivers/compress/uadk/uadk_compress_pmd.c:62:8: error: nested extern > declaration of ‘wd_comp_init2_’ [-Werror=nested-externs] > > ../drivers/compress/uadk/uadk_compress_pmd.c:62:50: error: ‘TASK_HW’ > undeclared (first use in this function) > > 62 | ret = wd_comp_init2_(alg_name, SCHED_POLICY_RR, TASK_HW, > &cparams); > > | ^~~~~~~ > > ../drivers/compress/uadk/uadk_compress_pmd.c:62:50: note: each undeclared > identifier is reported only once for each function it appears in > > ../drivers/compress/uadk/uadk_compress_pmd.c:63:2: error: implicit > declaration of function ‘numa_free_nodemask’ [-Werror=implicit-function- > declaration] > > 63 | numa_free_nodemask(cparams.bmp); > > | ^~~~~~~~~~~~~~~~~~ > > ../drivers/compress/uadk/uadk_compress_pmd.c:63:2: error: nested extern > declaration of ‘numa_free_nodemask’ [-Werror=nested-externs] > > ../drivers/compress/uadk/uadk_compress_pmd.c:35:23: error: unused variable > ‘cparams’ [-Werror=unused-variable] > > 35 | struct wd_ctx_params cparams = {0}; > > | ^~~~~~~ > > ../drivers/compress/uadk/uadk_compress_pmd.c: In function > ‘uadk_compress_pmd_close’: > > ../drivers/compress/uadk/uadk_compress_pmd.c:97:3: error: implicit > declaration of function ‘wd_comp_uninit2’; did you mean ‘wd_comp_uninit’? [- > Werror=implicit-function-declaration] > > 97 | wd_comp_uninit2(); > > | ^~~~~~~~~~~~~~~ > > | wd_comp_uninit > > ../drivers/compress/uadk/uadk_compress_pmd.c:97:3: error: nested extern > declaration of ‘wd_comp_uninit2’ [-Werror=nested-externs] > > I am sorry for the error. > > There are two reasons, one is using a newer uadk api, the other is > dependence on numa. > When using the old version uadk, I can reproduce a similar build > error, though not exactly the same. > And it can be solved by using a newer uadk version, at least 2.6, uadk > master branch does not have issues. > > a. 2.6 version exports the new api > b. building uadk library itself requires install numa, like yum > install numactl-devel > c. 2.6 header file +#include <numa.h>, which will be included automatically. > > Will add version dependence in the next version.
Yes this is what I also suspected. But we cannot just change the version dependency without prior deprecation notice. I would suggest sending a deprecation notice in this release and use it in next release. @David/Aaron, your thoughts? > > diff --git a/drivers/compress/uadk/meson.build > b/drivers/compress/uadk/meson.build > index 34113cd08c..e251af14cf 100644 > --- a/drivers/compress/uadk/meson.build > +++ b/drivers/compress/uadk/meson.build > @@ -13,7 +13,7 @@ sources = files( > ) > > deps += 'bus_vdev' > -dep = dependency('libwd_comp', required: false, method: 'pkg-config') > +dep = dependency('libwd_comp', version: '>=2.6', required: false, > method: 'pkg-config') > if not dep.found() > build = false > reason = 'missing dependency, "libwd_comp"' > @@ -21,7 +21,7 @@ else > ext_deps += dep > endif > > -dep = dependency('libwd', required: false, method: 'pkg-config') > +dep = dependency('libwd', version: '>=2.6', required: false, method: > 'pkg-config') > if not dep.found() > build = false > reason = 'missing dependency, "libwd"' > diff --git a/drivers/crypto/uadk/meson.build b/drivers/crypto/uadk/meson.build > index e46abd21e5..52db344c8e 100644 > --- a/drivers/crypto/uadk/meson.build > +++ b/drivers/crypto/uadk/meson.build > @@ -13,7 +13,7 @@ sources = files( > ) > > deps += 'bus_vdev' > -dep = dependency('libwd_crypto', required: false, method: 'pkg-config') > +dep = dependency('libwd_crypto', version: '>=2.6', required: false, > method: 'pkg-config') > if not dep.found() > build = false > reason = 'missing dependency, "libwd_crypto"' > @@ -21,7 +21,7 @@ else > ext_deps += dep > endif > > -dep = dependency('libwd', required: false, method: 'pkg-config') > +dep = dependency('libwd', version: '>=2.6', required: false, method: > 'pkg-config') > if not dep.found() > build = false > reason = 'missing dependency, "libwd"' > > Thanks