[v6,3/3] baseband/turbo_sw: meson build support for PMD driver

Message ID 1560964274-83070-4-git-send-email-nicolas.chautru@intel.com (mailing list archive)
State Superseded, archived
Delegated to: akhil goyal
Headers
Series BBDEV turbo_sw PMD compilation fix |

Checks

Context Check Description
ci/Intel-compilation fail Compilation issues
ci/checkpatch success coding style OK

Commit Message

Chautru, Nicolas June 19, 2019, 5:11 p.m. UTC
  Turbo_sw PMD driver now building with meson/ninja
with or without SDK libraries.

Acked-by: Kamil Chalupnik <kamilx.chalupnik@intel.com>
Acked-by: Nicolas Chautru <nicolas.chautru@intel.com>
Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
---
 drivers/baseband/meson.build          |  2 +-
 drivers/baseband/turbo_sw/meson.build | 30 ++++++++++++++++++++++++++++++
 meson_options.txt                     |  2 ++
 3 files changed, 33 insertions(+), 1 deletion(-)
 create mode 100644 drivers/baseband/turbo_sw/meson.build
  

Comments

Aaron Conole June 20, 2019, 12:05 a.m. UTC | #1
Nicolas Chautru <nicolas.chautru@intel.com> writes:

> Turbo_sw PMD driver now building with meson/ninja
> with or without SDK libraries.
>
> Acked-by: Kamil Chalupnik <kamilx.chalupnik@intel.com>
> Acked-by: Nicolas Chautru <nicolas.chautru@intel.com>

It seems strange to ack your own patch.

> Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
> ---

Something is wrong with this series:

  https://travis-ci.com/ovsrobot/dpdk/builds/116170401

We cannot enable this on AARCH64 builds - it seems that it wants to take
advantage of facilities that are x86 specific (like SSE 4.2)

>  drivers/baseband/meson.build          |  2 +-
>  drivers/baseband/turbo_sw/meson.build | 30 ++++++++++++++++++++++++++++++
>  meson_options.txt                     |  2 ++
>  3 files changed, 33 insertions(+), 1 deletion(-)
>  create mode 100644 drivers/baseband/turbo_sw/meson.build
>
> diff --git a/drivers/baseband/meson.build b/drivers/baseband/meson.build
> index 52489df..40a87d2 100644
> --- a/drivers/baseband/meson.build
> +++ b/drivers/baseband/meson.build
> @@ -1,7 +1,7 @@
>  # SPDX-License-Identifier: BSD-3-Clause
>  # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
>  
> -drivers = ['null']
> +drivers = ['null', 'turbo_sw']
>  
>  config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
>  driver_name_fmt = 'rte_pmd_@0@'
> diff --git a/drivers/baseband/turbo_sw/meson.build b/drivers/baseband/turbo_sw/meson.build
> new file mode 100644
> index 0000000..9b4fe34
> --- /dev/null
> +++ b/drivers/baseband/turbo_sw/meson.build
> @@ -0,0 +1,30 @@
> +# SPDX-License-Identifier: BSD-3-Clause
> +# Copyright(c) 2019 Intel Corporation
> +
> +path = get_option('flexran_sdk')
> +
> +if dpdk_conf.has('RTE_BBDEV_SDK_AVX2')
> +	lib = cc.find_library('libturbo', dirs: [path + '/lib_turbo'], required: false)
> +	if not lib.found()
> +		build = false
> +	else
> +		ext_deps += cc.find_library('libturbo', dirs: [path + '/lib_turbo'], required: true)
> +		ext_deps += cc.find_library('libcrc', dirs: [path + '/lib_crc'], required: true)
> +		ext_deps += cc.find_library('librate_matching', dirs: [path + '/lib_rate_matching'], required: true)
> +		ext_deps += cc.find_library('libcommon', dirs: [path + '/lib_common'], required: true)
> +		ext_deps += cc.find_library('libstdc++', required: true)
> +		ext_deps += cc.find_library('libirc', required: true)
> +		ext_deps += cc.find_library('libimf', required: true)
> +		ext_deps += cc.find_library('libipps', required: true)
> +		ext_deps += cc.find_library('libsvml', required: true)
> +		includes += include_directories(path + '/lib_turbo')
> +		includes += include_directories(path + '/lib_crc')
> +		includes += include_directories(path + '/lib_rate_matching')
> +		includes += include_directories(path + '/lib_common')
> +	endif
> +endif
> +
> +deps += ['bbdev', 'bus_vdev', 'ring']
> +name = 'bbdev_turbo_sw'
> +allow_experimental_apis = true
> +sources = files('bbdev_turbo_software.c')
> diff --git a/meson_options.txt b/meson_options.txt
> index 16d9f92..92d3e97 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -10,6 +10,8 @@ option('enable_kmods', type: 'boolean', value: true,
>  	description: 'build kernel modules')
>  option('examples', type: 'string', value: '',
>  	description: 'Comma-separated list of examples to build by default')
> +option('flexran_sdk', type: 'string', value: '',
> +	description: 'Path to FlexRAN SDK optional Libraries for BBDEV device')
>  option('ibverbs_link', type: 'combo', choices : ['shared', 'dlopen'], value: 'shared',
>  	description: 'Linkage method (shared/dlopen) for Mellanox PMDs with ibverbs dependencies.')
>  option('include_subdir_arch', type: 'string', value: '',
  
Chautru, Nicolas June 20, 2019, 12:34 a.m. UTC | #2
>
>-----Original Message-----
>From: Aaron Conole [mailto:aconole@redhat.com] 
>Sent: Wednesday, June 19, 2019 5:06 PM
>To: Chautru, Nicolas <nicolas.chautru@intel.com>
>Cc: akhil.goyal@nxp.com; dev@dpdk.org; Yigit, Ferruh <ferruh.yigit@intel.com>; thomas@monjalon.net; Mokhtar, Amr <amr.mokhtar@intel.com>; Chalupnik, KamilX <kamilx.chalupnik@intel.com>
>Subject: Re: [dpdk-dev] [PATCH v6 3/3] baseband/turbo_sw: meson build support for PMD driver
>
>Nicolas Chautru <nicolas.chautru@intel.com> writes:
>
>> Turbo_sw PMD driver now building with meson/ninja with or without SDK 
>> libraries.
>>
>> Acked-by: Kamil Chalupnik <kamilx.chalupnik@intel.com>
>> Acked-by: Nicolas Chautru <nicolas.chautru@intel.com>
>
>It seems strange to ack your own patch.

I will remove. 

>
>> Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
>> ---
>
>Something is wrong with this series:
>
>  https://travis-ci.com/ovsrobot/dpdk/builds/116170401
>
>We cannot enable this on AARCH64 builds - it seems that it wants to take advantage of facilities that are x86 specific (like SSE 4.2)
>

Thanks for the feedback. This application can link optionally with AVX/SSE libraries but by default should compile on any platform. This flag can be kept to NULL by default. I will push now as new patchset. 
Thanks
  

Patch

diff --git a/drivers/baseband/meson.build b/drivers/baseband/meson.build
index 52489df..40a87d2 100644
--- a/drivers/baseband/meson.build
+++ b/drivers/baseband/meson.build
@@ -1,7 +1,7 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
 
-drivers = ['null']
+drivers = ['null', 'turbo_sw']
 
 config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
 driver_name_fmt = 'rte_pmd_@0@'
diff --git a/drivers/baseband/turbo_sw/meson.build b/drivers/baseband/turbo_sw/meson.build
new file mode 100644
index 0000000..9b4fe34
--- /dev/null
+++ b/drivers/baseband/turbo_sw/meson.build
@@ -0,0 +1,30 @@ 
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Intel Corporation
+
+path = get_option('flexran_sdk')
+
+if dpdk_conf.has('RTE_BBDEV_SDK_AVX2')
+	lib = cc.find_library('libturbo', dirs: [path + '/lib_turbo'], required: false)
+	if not lib.found()
+		build = false
+	else
+		ext_deps += cc.find_library('libturbo', dirs: [path + '/lib_turbo'], required: true)
+		ext_deps += cc.find_library('libcrc', dirs: [path + '/lib_crc'], required: true)
+		ext_deps += cc.find_library('librate_matching', dirs: [path + '/lib_rate_matching'], required: true)
+		ext_deps += cc.find_library('libcommon', dirs: [path + '/lib_common'], required: true)
+		ext_deps += cc.find_library('libstdc++', required: true)
+		ext_deps += cc.find_library('libirc', required: true)
+		ext_deps += cc.find_library('libimf', required: true)
+		ext_deps += cc.find_library('libipps', required: true)
+		ext_deps += cc.find_library('libsvml', required: true)
+		includes += include_directories(path + '/lib_turbo')
+		includes += include_directories(path + '/lib_crc')
+		includes += include_directories(path + '/lib_rate_matching')
+		includes += include_directories(path + '/lib_common')
+	endif
+endif
+
+deps += ['bbdev', 'bus_vdev', 'ring']
+name = 'bbdev_turbo_sw'
+allow_experimental_apis = true
+sources = files('bbdev_turbo_software.c')
diff --git a/meson_options.txt b/meson_options.txt
index 16d9f92..92d3e97 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -10,6 +10,8 @@  option('enable_kmods', type: 'boolean', value: true,
 	description: 'build kernel modules')
 option('examples', type: 'string', value: '',
 	description: 'Comma-separated list of examples to build by default')
+option('flexran_sdk', type: 'string', value: '',
+	description: 'Path to FlexRAN SDK optional Libraries for BBDEV device')
 option('ibverbs_link', type: 'combo', choices : ['shared', 'dlopen'], value: 'shared',
 	description: 'Linkage method (shared/dlopen) for Mellanox PMDs with ibverbs dependencies.')
 option('include_subdir_arch', type: 'string', value: '',