Hi everyone,
We have a new crypto PMD submitted on ML (http://patches.dpdk.org/project/dpdk/cover/20221008083747.6559-1-zhangfei.ga...)
This PMD is dependent on an external library which needs to be cross compiled for ARM on x86. It mandatorily need "numactl" also cross-compiled and instead of using pkg-config of libnuma, it need the library and headers to be copied manually to aarch toolchain. And if that is also done, it is not generating pkg-config which DPDK can use to compile the PMD.
So the question is whether we can accept the PMD without pkg-config and along with above dependency?
Regards, Akhil
Hi, Akhil
On 2022/10/17 下午3:02, Akhil Goyal wrote:
Hi everyone,
We have a new crypto PMD submitted on ML (http://patches.dpdk.org/project/dpdk/cover/20221008083747.6559-1-zhangfei.ga...)
This PMD is dependent on an external library which needs to be cross compiled for ARM on x86.
It mandatorily need “numactl” also cross-compiled and instead of using pkg-config of libnuma, it need the library and headers to be copied manually to aarch toolchain.
And if that is also done, it is not generating pkg-config which DPDK can use to compile the PMD.
Thanks for the guidance
We are trying to provide pkgconfig file for uadk libs https://github.com/Linaro/uadk/pull/513
And have fixed the x86 local build. https://github.com/Linaro/uadk/pull/512
Though currently uadk crypto pmd is targeting for ARM, So add build dependency (dpdk_conf.get('RTE_ARCH_64')) in meson.build
Thanks
So the question is whether we can accept the PMD without pkg-config and along with above dependency?
Regards,
Akhil
Hi, Akhil
On 2022/10/17 下午3:02, Akhil Goyal wrote:
Hi everyone,
We have a new crypto PMD submitted on ML (http://patches.dpdk.org/project/dpdk/cover/20221008083747.6559-1-zhangfei.ga...)
This PMD is dependent on an external library which needs to be cross compiled for ARM on x86.
It mandatorily need “numactl” also cross-compiled and instead of using pkg-config of libnuma, it need the library and headers to be copied manually to aarch toolchain.
And if that is also done, it is not generating pkg-config which DPDK can use to compile the PMD.
Thanks for the guidance
We are trying to provide pkgconfig file for uadk libs https://github.com/Linaro/uadk/pull/513
And have fixed the x86 local build. https://github.com/Linaro/uadk/pull/512
Under this git pull, I have verified building and installing dpdk on x86 with this diff to switch to pkg-config
diff --git a/drivers/crypto/uadk/meson.build b/drivers/crypto/uadk/meson.build index dda6c6b257..f6fae0a239 100644 --- a/drivers/crypto/uadk/meson.build +++ b/drivers/crypto/uadk/meson.build @@ -8,18 +8,12 @@ if not is_linux subdir_done() endif
-if arch_subdir != 'arm' or not dpdk_conf.get('RTE_ARCH_64') - build = false - reason = 'only supported on aarch64' - subdir_done() -endif - sources = files( 'uadk_crypto_pmd.c', )
deps += 'bus_vdev' -dep = cc.find_library('libwd_crypto', required: false) +dep = dependency('libwd_crypto', required: false, method: 'pkg-config') if not dep.found() build = false reason = 'missing dependency, "libwd_crypto"' @@ -27,7 +21,7 @@ else ext_deps += dep endif
-dep = cc.find_library('libwd', required: false) +dep = dependency('libwd', required: false, method: 'pkg-config') if not dep.found() build = false reason = 'missing dependency, "libwd"'
One uncertainty is numa, "Requires: numa", This requires numa.pc has to be installed, so numa only can be installed from source code (make install). While apt-get install libnuma-dev does not install numa.pc, so system can not search numa. So do we have to build numa from source code?
Thanks
On 2022/10/18 下午6:07, Zhangfei Gao wrote:
Hi, Akhil
On 2022/10/17 下午3:02, Akhil Goyal wrote:
Hi everyone,
We have a new crypto PMD submitted on ML (http://patches.dpdk.org/project/dpdk/cover/20221008083747.6559-1-zhangfei.ga...)
This PMD is dependent on an external library which needs to be cross compiled for ARM on x86.
It mandatorily need “numactl” also cross-compiled and instead of using pkg-config of libnuma, it need the library and headers to be copied manually to aarch toolchain.
And if that is also done, it is not generating pkg-config which DPDK can use to compile the PMD.
Thanks for the guidance
We are trying to provide pkgconfig file for uadk libs https://github.com/Linaro/uadk/pull/513
And have fixed the x86 local build. https://github.com/Linaro/uadk/pull/512
Under this git pull, I have verified building and installing dpdk on x86 with this diff to switch to pkg-config
diff --git a/drivers/crypto/uadk/meson.build b/drivers/crypto/uadk/meson.build index dda6c6b257..f6fae0a239 100644 --- a/drivers/crypto/uadk/meson.build +++ b/drivers/crypto/uadk/meson.build @@ -8,18 +8,12 @@ if not is_linux subdir_done() endif
-if arch_subdir != 'arm' or not dpdk_conf.get('RTE_ARCH_64') - build = false - reason = 'only supported on aarch64' - subdir_done() -endif
sources = files( 'uadk_crypto_pmd.c', )
deps += 'bus_vdev' -dep = cc.find_library('libwd_crypto', required: false) +dep = dependency('libwd_crypto', required: false, method: 'pkg-config') if not dep.found() build = false reason = 'missing dependency, "libwd_crypto"' @@ -27,7 +21,7 @@ else ext_deps += dep endif
-dep = cc.find_library('libwd', required: false) +dep = dependency('libwd', required: false, method: 'pkg-config') if not dep.found() build = false reason = 'missing dependency, "libwd"'
One uncertainty is numa, "Requires: numa", This requires numa.pc has to be installed, so numa only can be installed from source code (make install). While apt-get install libnuma-dev does not install numa.pc, so system can not search numa. So do we have to build numa from source code?
By the way.
When trying to use +Libs.Private: -lnuma, I found Even remove building uadk, the dpdk fails if no numa.pc, though apt-get insall libnuma-dev
/usr/bin/ld: lib/librte_eal.so.23.0: version node not found for symbol numa_run_on_node_mask@@libnuma_1.2 /usr/bin/ld: failed to set dynamic section sizes: bad value collect2: error: ld returned 1 exit status [2813/3314] Compiling C object 'drivers/a715181@@tmp_rte_event_cnxk@sta/event_cnxk_tx_cn10k_tx_112_127_seg.c.o'. ninja: build stopped: subcommand failed.
Thanks
18/10/2022 12:52, Zhangfei Gao:
On 2022/10/18 下午6:07, Zhangfei Gao wrote:
Hi, Akhil
On 2022/10/17 下午3:02, Akhil Goyal wrote:
Hi everyone,
We have a new crypto PMD submitted on ML (http://patches.dpdk.org/project/dpdk/cover/20221008083747.6559-1-zhangfei.ga...)
This PMD is dependent on an external library which needs to be cross compiled for ARM on x86.
It mandatorily need “numactl” also cross-compiled and instead of using pkg-config of libnuma, it need the library and headers to be copied manually to aarch toolchain.
And if that is also done, it is not generating pkg-config which DPDK can use to compile the PMD.
Thanks for the guidance
We are trying to provide pkgconfig file for uadk libs https://github.com/Linaro/uadk/pull/513
And have fixed the x86 local build. https://github.com/Linaro/uadk/pull/512
Under this git pull, I have verified building and installing dpdk on x86 with this diff to switch to pkg-config
diff --git a/drivers/crypto/uadk/meson.build b/drivers/crypto/uadk/meson.build index dda6c6b257..f6fae0a239 100644 --- a/drivers/crypto/uadk/meson.build +++ b/drivers/crypto/uadk/meson.build @@ -8,18 +8,12 @@ if not is_linux subdir_done() endif
-if arch_subdir != 'arm' or not dpdk_conf.get('RTE_ARCH_64')
- build = false
- reason = 'only supported on aarch64'
- subdir_done()
-endif
sources = files( 'uadk_crypto_pmd.c', )
deps += 'bus_vdev' -dep = cc.find_library('libwd_crypto', required: false) +dep = dependency('libwd_crypto', required: false, method: 'pkg-config') if not dep.found() build = false reason = 'missing dependency, "libwd_crypto"' @@ -27,7 +21,7 @@ else ext_deps += dep endif
-dep = cc.find_library('libwd', required: false) +dep = dependency('libwd', required: false, method: 'pkg-config') if not dep.found() build = false reason = 'missing dependency, "libwd"'
One uncertainty is numa, "Requires: numa", This requires numa.pc has to be installed, so numa only can be installed from source code (make install). While apt-get install libnuma-dev does not install numa.pc, so system can not search numa. So do we have to build numa from source code?
By the way.
When trying to use +Libs.Private: -lnuma, I found Even remove building uadk, the dpdk fails if no numa.pc, though apt-get insall libnuma-dev
/usr/bin/ld: lib/librte_eal.so.23.0: version node not found for symbol numa_run_on_node_mask@@libnuma_1.2 /usr/bin/ld: failed to set dynamic section sizes: bad value collect2: error: ld returned 1 exit status [2813/3314] Compiling C object 'drivers/a715181@@tmp_rte_event_cnxk@sta/event_cnxk_tx_cn10k_tx_112_127_seg.c.o'. ninja: build stopped: subcommand failed.
libnuma is a general requirement of DPDK. numa.pc should be installed by the NUMA package. Maybe a problem with your distribution.
On 2022/10/19 下午2:55, Thomas Monjalon wrote:
18/10/2022 12:52, Zhangfei Gao:
On 2022/10/18 下午6:07, Zhangfei Gao wrote:
Hi, Akhil
On 2022/10/17 下午3:02, Akhil Goyal wrote:
Hi everyone,
We have a new crypto PMD submitted on ML (http://patches.dpdk.org/project/dpdk/cover/20221008083747.6559-1-zhangfei.ga...)
This PMD is dependent on an external library which needs to be cross compiled for ARM on x86.
It mandatorily need “numactl” also cross-compiled and instead of using pkg-config of libnuma, it need the library and headers to be copied manually to aarch toolchain.
And if that is also done, it is not generating pkg-config which DPDK can use to compile the PMD.
Thanks for the guidance
We are trying to provide pkgconfig file for uadk libs https://github.com/Linaro/uadk/pull/513
And have fixed the x86 local build. https://github.com/Linaro/uadk/pull/512
Under this git pull, I have verified building and installing dpdk on x86 with this diff to switch to pkg-config
diff --git a/drivers/crypto/uadk/meson.build b/drivers/crypto/uadk/meson.build index dda6c6b257..f6fae0a239 100644 --- a/drivers/crypto/uadk/meson.build +++ b/drivers/crypto/uadk/meson.build @@ -8,18 +8,12 @@ if not is_linux subdir_done() endif
-if arch_subdir != 'arm' or not dpdk_conf.get('RTE_ARCH_64')
- build = false
- reason = 'only supported on aarch64'
- subdir_done()
-endif
sources = files( 'uadk_crypto_pmd.c', )
deps += 'bus_vdev'
-dep = cc.find_library('libwd_crypto', required: false) +dep = dependency('libwd_crypto', required: false, method: 'pkg-config') if not dep.found() build = false reason = 'missing dependency, "libwd_crypto"' @@ -27,7 +21,7 @@ else ext_deps += dep endif
-dep = cc.find_library('libwd', required: false) +dep = dependency('libwd', required: false, method: 'pkg-config') if not dep.found() build = false reason = 'missing dependency, "libwd"'
One uncertainty is numa, "Requires: numa", This requires numa.pc has to be installed, so numa only can be installed from source code (make install). While apt-get install libnuma-dev does not install numa.pc, so system can not search numa. So do we have to build numa from source code?
By the way.
When trying to use +Libs.Private: -lnuma, I found Even remove building uadk, the dpdk fails if no numa.pc, though apt-get insall libnuma-dev
/usr/bin/ld: lib/librte_eal.so.23.0: version node not found for symbol numa_run_on_node_mask@@libnuma_1.2 /usr/bin/ld: failed to set dynamic section sizes: bad value collect2: error: ld returned 1 exit status [2813/3314] Compiling C object 'drivers/a715181@@tmp_rte_event_cnxk@sta/event_cnxk_tx_cn10k_tx_112_127_seg.c.o'. ninja: build stopped: subcommand failed.
libnuma is a general requirement of DPDK. numa.pc should be installed by the NUMA package. Maybe a problem with your distribution.
It looks it is the numa source code issue.
Only if we do not install numa by source code, apt-get install libnuma-dev always works.
But if install numa from source code once via make install, apt-get seems not workable anymore, same on x86 or arm. It only install symbol (libnuma.so), but no real library (libnuma.so.1.0.0)
$ sudo apt-get install libnuma-dev $ numactl numactl: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory $ ll /usr/lib/aarch64-linux-gnu/libnuma* -rw-r--r-- 1 root root 77642 Sep 8 2018 /usr/lib/aarch64-linux-gnu/libnuma.a lrwxrwxrwx 1 root root 16 Sep 8 2018 /usr/lib/aarch64-linux-gnu/libnuma.so -> libnuma.so.1.0.0
More details, https://github.com/Linaro/uadk/issues/515
But never mind, will set numa as private, then both case can work, so will ignore this issue first.
+Libs.Private: -lnuma
Thanks
Hi, Akhil
On Mon, 17 Oct 2022 at 15:02, Akhil Goyal gakhil@marvell.com wrote:
Hi everyone,
We have a new crypto PMD submitted on ML (http://patches.dpdk.org/project/dpdk/cover/20221008083747.6559-1-zhangfei.ga...)
This PMD is dependent on an external library which needs to be cross compiled for ARM on x86.
It mandatorily need “numactl” also cross-compiled and instead of using pkg-config of libnuma, it need the library and headers to be copied manually to aarch toolchain.
And if that is also done, it is not generating pkg-config which DPDK can use to compile the PMD.
Thanks for the guidance.
The udak library [1] now support x86 local build, and export pkg-config. I have verified the crypto pmd on both x86 and arm with pkg-config feature. Though x86 only support build and install, but not test since no hardware.
v4: https://patches.dpdk.org/project/dpdk/cover/20221019125753.1700071-1-zhangfe...
[1] https://github.com/Linaro/uadk
Thanks
Hi Zhangfei,
Hi, Akhil
On Mon, 17 Oct 2022 at 15:02, Akhil Goyal gakhil@marvell.com wrote:
Hi everyone,
We have a new crypto PMD submitted on ML
(http://patches.dpdk.org/project/dpdk/cover/20221008083747.6559-1-zhangfei.ga... )
This PMD is dependent on an external library which needs to be cross compiled
for ARM on x86.
It mandatorily need “numactl” also cross-compiled and instead of using pkg-
config of libnuma, it need the library and headers to be copied manually to aarch toolchain.
And if that is also done, it is not generating pkg-config which DPDK can use to
compile the PMD.
Thanks for the guidance.
The udak library [1] now support x86 local build, and export pkg-config. I have verified the crypto pmd on both x86 and arm with pkg-config feature. Though x86 only support build and install, but not test since no hardware.
v4: https://patches.dpdk.org/project/dpdk/cover/20221019125753.1700071-1-zhangfe...
I am getting below error with openssl 3.0 Do you have a dependency with earlier versions in uadk? If so, can you fix configure.ac in uadk to check for version and skip crypto if dependency is not met.
gcc -DHAVE_CONFIG_H -I. -I../.. -DUSE_ZLIB -Wall -Werror -fno-strict-aliasing -I../../include -g -O2 -MT zip_sva_perf-test_lib.o -MD -MP -MF .deps/zip_sva_perf-test_lib.Tpo -c -o zip_sva_perf-test_lib.o `test -f 'test_lib.c' || echo './'`test_lib.c test_lib.c: In function ‘calculate_md5’: test_lib.c:762:2: error: ‘MD5_Init’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] 762 | MD5_Init(&md5->md5_ctx); | ^~~~~~~~ In file included from test_lib.h:11, from test_lib.c:14: /usr/local/include/openssl/md5.h:49:27: note: declared here 49 | OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c); | ^~~~~~~~ test_lib.c:763:2: error: ‘MD5_Update’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] 763 | MD5_Update(&md5->md5_ctx, buf, len); | ^~~~~~~~~~ In file included from test_lib.h:11, from test_lib.c:14: /usr/local/include/openssl/md5.h:50:27: note: declared here 50 | OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len); | ^~~~~~~~~~ test_lib.c:764:2: error: ‘MD5_Final’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] 764 | MD5_Final(md5->md, &md5->md5_ctx); | ^~~~~~~~~ In file included from test_lib.h:11, from test_lib.c:14: /usr/local/include/openssl/md5.h:51:27: note: declared here 51 | OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c); | ^~~~~~~~~ cc1: all warnings being treated as errors
On Wed, 19 Oct 2022 at 22:25, Akhil Goyal gakhil@marvell.com wrote:
Hi Zhangfei,
Hi, Akhil
On Mon, 17 Oct 2022 at 15:02, Akhil Goyal gakhil@marvell.com wrote:
Hi everyone,
We have a new crypto PMD submitted on ML
(http://patches.dpdk.org/project/dpdk/cover/20221008083747.6559-1-zhangfei.ga... )
This PMD is dependent on an external library which needs to be cross compiled
for ARM on x86.
It mandatorily need “numactl” also cross-compiled and instead of using pkg-
config of libnuma, it need the library and headers to be copied manually to aarch toolchain.
And if that is also done, it is not generating pkg-config which DPDK can use to
compile the PMD.
Thanks for the guidance.
The udak library [1] now support x86 local build, and export pkg-config. I have verified the crypto pmd on both x86 and arm with pkg-config feature. Though x86 only support build and install, but not test since no hardware.
v4: https://patches.dpdk.org/project/dpdk/cover/20221019125753.1700071-1-zhangfe...
I am getting below error with openssl 3.0 Do you have a dependency with earlier versions in uadk? If so, can you fix configure.ac in uadk to check for version and skip crypto if dependency is not met.
Oops, never thought about this.
How about this https://github.com/Linaro/uadk/pull/516
Thanks
gcc -DHAVE_CONFIG_H -I. -I../.. -DUSE_ZLIB -Wall -Werror -fno-strict-aliasing -I../../include -g -O2 -MT zip_sva_perf-test_lib.o -MD -MP -MF .deps/zip_sva_perf-test_lib.Tpo -c -o zip_sva_perf-test_lib.o `test -f 'test_lib.c' || echo './'`test_lib.c test_lib.c: In function ‘calculate_md5’: test_lib.c:762:2: error: ‘MD5_Init’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] 762 | MD5_Init(&md5->md5_ctx); | ^~~~~~~~ In file included from test_lib.h:11, from test_lib.c:14: /usr/local/include/openssl/md5.h:49:27: note: declared here 49 | OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c); | ^~~~~~~~ test_lib.c:763:2: error: ‘MD5_Update’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] 763 | MD5_Update(&md5->md5_ctx, buf, len); | ^~~~~~~~~~ In file included from test_lib.h:11, from test_lib.c:14: /usr/local/include/openssl/md5.h:50:27: note: declared here 50 | OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len); | ^~~~~~~~~~ test_lib.c:764:2: error: ‘MD5_Final’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] 764 | MD5_Final(md5->md, &md5->md5_ctx); | ^~~~~~~~~ In file included from test_lib.h:11, from test_lib.c:14: /usr/local/include/openssl/md5.h:51:27: note: declared here 51 | OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c); | ^~~~~~~~~ cc1: all warnings being treated as errors
Hi, Akhil
On Wed, 19 Oct 2022 at 23:27, Zhangfei Gao zhangfei.gao@linaro.org wrote:
Hi everyone,
We have a new crypto PMD submitted on ML
(http://patches.dpdk.org/project/dpdk/cover/20221008083747.6559-1-zhangfei.ga... )
This PMD is dependent on an external library which needs to be cross compiled
for ARM on x86.
It mandatorily need “numactl” also cross-compiled and instead of using pkg-
config of libnuma, it need the library and headers to be copied manually to aarch toolchain.
And if that is also done, it is not generating pkg-config which DPDK can use to
compile the PMD.
Thanks for the guidance.
The udak library [1] now support x86 local build, and export pkg-config. I have verified the crypto pmd on both x86 and arm with pkg-config feature. Though x86 only support build and install, but not test since no hardware.
v4: https://patches.dpdk.org/project/dpdk/cover/20221019125753.1700071-1-zhangfe...
I am getting below error with openssl 3.0 Do you have a dependency with earlier versions in uadk? If so, can you fix configure.ac in uadk to check for version and skip crypto if dependency is not met.
Thanks for the suggestion
Oops, never thought about this.
How about this https://github.com/Linaro/uadk/pull/516
The pull has been merged. I have verified verified openssl3.0 (ignored) , openssl1.0.0 (ignored) and openssl1.1.1f (works) We are using openssl1.1.1f verison now.
Sorry for the inconvenience.
Thanks