[v8,12/14] build: disable Arm drivers

Message ID 1604649795-27476-13-git-send-email-juraj.linkes@pantheon.tech (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series Arm build options rework |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Juraj Linkeš Nov. 6, 2020, 8:03 a.m. UTC
  A few options that disabled drivers in the old makefiles were improperly
ported to the meson build system. Fix this by adding a to the list of
disabled drivers, similarly how the command line option works. Remove
unneeded driver options ported from the old makefile system.
Add support for removing drivers for cross builds.

Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 config/arm/arm64_armada_linux_gcc | 1 +
 config/arm/arm64_armv8_linux_gcc  | 3 +++
 config/arm/meson.build            | 7 +++----
 drivers/meson.build               | 6 +++++-
 meson.build                       | 1 +
 5 files changed, 13 insertions(+), 5 deletions(-)
  

Comments

Honnappa Nagarahalli Nov. 8, 2020, 8:19 p.m. UTC | #1
<snip>

> 
> A few options that disabled drivers in the old makefiles were improperly
> ported to the meson build system. Fix this by adding a to the list of disabled
The fixes need to be separated into a different commit as they need to be backported.
It would be good to get the fix patch as the first patch, it will be easy to backport.

> drivers, similarly how the command line option works. Remove unneeded
> driver options ported from the old makefile system.
> Add support for removing drivers for cross builds.
> 
> Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
>  config/arm/arm64_armada_linux_gcc | 1 +
> config/arm/arm64_armv8_linux_gcc  | 3 +++
>  config/arm/meson.build            | 7 +++----
>  drivers/meson.build               | 6 +++++-
>  meson.build                       | 1 +
>  5 files changed, 13 insertions(+), 5 deletions(-)
> 
> diff --git a/config/arm/arm64_armada_linux_gcc
> b/config/arm/arm64_armada_linux_gcc
> index 73945fbb4..7383f42e2 100644
> --- a/config/arm/arm64_armada_linux_gcc
> +++ b/config/arm/arm64_armada_linux_gcc
> @@ -17,3 +17,4 @@ endian = 'little'
>  implementer_id = '0x56'
>  max_lcores = 16
>  max_numa_nodes = 1
> +disabled_drivers = ['bus/dpaa', 'bus/fslmc', 'common/dpaax']
> diff --git a/config/arm/arm64_armv8_linux_gcc
> b/config/arm/arm64_armv8_linux_gcc
> index fb24be5fc..245e06e5f 100644
> --- a/config/arm/arm64_armv8_linux_gcc
> +++ b/config/arm/arm64_armv8_linux_gcc
> @@ -52,3 +52,6 @@ part_number = 'generic'
>  # max_lcores = n      # will set RTE_MAX_LCORE
>  max_lcores = 256
>  max_numa_nodes = 4
> +
> +# disabled_drivers = ['bus/dpaa', 'crypto']
> +    # add to the set of disabled libraries
> diff --git a/config/arm/meson.build b/config/arm/meson.build index
> e9bb60045..a39a35b6a 100644
> --- a/config/arm/meson.build
> +++ b/config/arm/meson.build
> @@ -3,6 +3,9 @@
>  # Copyright(c) 2017 Cavium, Inc
>  # Copyright(c) 2020 PANTHEON.tech s.r.o.
> 
> +# disable Arm drivers for all builds
> +disabled_drivers += ['net/avp', 'net/fm10k']
> +
>  # common flags to all aarch64 builds, with lowest priority
> flags_common_default = [
>  	# Accelarate rte_memcpy. Be sure to run unit test
> (memcpy_perf_autotest) @@ -17,9 +20,6 @@ flags_common_default = [
>  	#	['RTE_ARM64_MEMCPY_ALIGN_MASK', 0xF],
>  	#	['RTE_ARM64_MEMCPY_STRICT_ALIGN', false],
> 
> -	['RTE_NET_FM10K', false],
> -	['RTE_NET_AVP', false],
> -
>  	['RTE_SCHED_VECTOR', false],
>  	['RTE_ARM_USE_WFE', false],
>  	['RTE_ARCH_ARM64', true],
> @@ -124,7 +124,6 @@ implementers = {
>  					['RTE_MACHINE', '"octeontx2"'],
>  					['RTE_ARM_FEATURE_ATOMICS',
> true],
>  					['RTE_USE_C11_MEM_MODEL', true],
> -					['RTE_EAL_IGB_UIO', false],
Does this need to go to octeon tx2 cross file?

>  					['RTE_MAX_LCORE', 36],
>  					['RTE_MAX_NUMA_NODES', 1]
>  				]
> diff --git a/drivers/meson.build b/drivers/meson.build index
> 4bb7e9218..a997387ad 100644
> --- a/drivers/meson.build
> +++ b/drivers/meson.build
> @@ -18,9 +18,13 @@ subdirs = [
>  	'baseband', # depends on common and bus.
>  ]
> 
> -disabled_drivers = run_command(list_dir_globs,
> get_option('disable_drivers'),
> +disabled_drivers += run_command(list_dir_globs,
> +get_option('disable_drivers'),
>  		).stdout().split()
> 
> +if meson.is_cross_build()
> +	disabled_drivers += meson.get_cross_property('disabled_drivers', [])
> +endif
> +
>  default_cflags = machine_args
>  default_cflags += ['-DALLOW_EXPERIMENTAL_API']  default_cflags += ['-
> DALLOW_INTERNAL_API'] diff --git a/meson.build b/meson.build index
> 61d9a4f5f..8dadd70dc 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -21,6 +21,7 @@ dpdk_drivers = []
>  dpdk_extra_ldflags = []
>  dpdk_libs_disabled = []
>  dpdk_drvs_disabled = []
> +disabled_drivers = []
>  abi_version_file = files('ABI_VERSION')
> 
>  if host_machine.cpu_family().startswith('x86')
> --
> 2.20.1
  
Juraj Linkeš Nov. 9, 2020, 10:52 a.m. UTC | #2
> -----Original Message-----
> From: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
> Sent: Sunday, November 8, 2020 9:19 PM
> To: Juraj Linkeš <juraj.linkes@pantheon.tech>; bruce.richardson@intel.com;
> Ruifeng Wang <Ruifeng.Wang@arm.com>; Phil Yang <Phil.Yang@arm.com>;
> vcchunga@amazon.com; Dharmik Thakkar <Dharmik.Thakkar@arm.com>;
> jerinjacobk@gmail.com; hemant.agrawal@nxp.com; Ajit Khaparde
> (ajit.khaparde@broadcom.com) <ajit.khaparde@broadcom.com>;
> ferruh.yigit@intel.com; aconole@redhat.com
> Cc: dev@dpdk.org; nd <nd@arm.com>; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; nd <nd@arm.com>
> Subject: RE: [PATCH v8 12/14] build: disable Arm drivers
> 
> <snip>
> 
> >
> > A few options that disabled drivers in the old makefiles were
> > improperly ported to the meson build system. Fix this by adding a to
> > the list of disabled
> The fixes need to be separated into a different commit as they need to be
> backported.
> It would be good to get the fix patch as the first patch, it will be easy to
> backport.
> 

Ok, I'll add support for disabling drivers for native and cross builds (that will be an independent easily portable change) and put the rest into a separate patch. That would be a compromise between v7 and v8.

> > drivers, similarly how the command line option works. Remove unneeded
> > driver options ported from the old makefile system.
> > Add support for removing drivers for cross builds.
> >
> > Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
> > Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> > ---
> >  config/arm/arm64_armada_linux_gcc | 1 +
> > config/arm/arm64_armv8_linux_gcc  | 3 +++
> >  config/arm/meson.build            | 7 +++----
> >  drivers/meson.build               | 6 +++++-
> >  meson.build                       | 1 +
> >  5 files changed, 13 insertions(+), 5 deletions(-)
> >
> > diff --git a/config/arm/arm64_armada_linux_gcc
> > b/config/arm/arm64_armada_linux_gcc
> > index 73945fbb4..7383f42e2 100644
> > --- a/config/arm/arm64_armada_linux_gcc
> > +++ b/config/arm/arm64_armada_linux_gcc
> > @@ -17,3 +17,4 @@ endian = 'little'
> >  implementer_id = '0x56'
> >  max_lcores = 16
> >  max_numa_nodes = 1
> > +disabled_drivers = ['bus/dpaa', 'bus/fslmc', 'common/dpaax']
> > diff --git a/config/arm/arm64_armv8_linux_gcc
> > b/config/arm/arm64_armv8_linux_gcc
> > index fb24be5fc..245e06e5f 100644
> > --- a/config/arm/arm64_armv8_linux_gcc
> > +++ b/config/arm/arm64_armv8_linux_gcc
> > @@ -52,3 +52,6 @@ part_number = 'generic'
> >  # max_lcores = n      # will set RTE_MAX_LCORE
> >  max_lcores = 256
> >  max_numa_nodes = 4
> > +
> > +# disabled_drivers = ['bus/dpaa', 'crypto']
> > +    # add to the set of disabled libraries
> > diff --git a/config/arm/meson.build b/config/arm/meson.build index
> > e9bb60045..a39a35b6a 100644
> > --- a/config/arm/meson.build
> > +++ b/config/arm/meson.build
> > @@ -3,6 +3,9 @@
> >  # Copyright(c) 2017 Cavium, Inc
> >  # Copyright(c) 2020 PANTHEON.tech s.r.o.
> >
> > +# disable Arm drivers for all builds
> > +disabled_drivers += ['net/avp', 'net/fm10k']
> > +
> >  # common flags to all aarch64 builds, with lowest priority
> > flags_common_default = [
> >  	# Accelarate rte_memcpy. Be sure to run unit test
> > (memcpy_perf_autotest) @@ -17,9 +20,6 @@ flags_common_default = [
> >  	#	['RTE_ARM64_MEMCPY_ALIGN_MASK', 0xF],
> >  	#	['RTE_ARM64_MEMCPY_STRICT_ALIGN', false],
> >
> > -	['RTE_NET_FM10K', false],
> > -	['RTE_NET_AVP', false],
> > -
> >  	['RTE_SCHED_VECTOR', false],
> >  	['RTE_ARM_USE_WFE', false],
> >  	['RTE_ARCH_ARM64', true],
> > @@ -124,7 +124,6 @@ implementers = {
> >  					['RTE_MACHINE', '"octeontx2"'],
> >  					['RTE_ARM_FEATURE_ATOMICS',
> > true],
> >  					['RTE_USE_C11_MEM_MODEL', true],
> > -					['RTE_EAL_IGB_UIO', false],
> Does this need to go to octeon tx2 cross file?
> 

Possibly.
Based on my understanding of the old makefile config (which could be wrong), I think there are two categories here:
1. drivers which were disabled because they weren't supported at all or just on that platform.
2. drivers which were explicitly disabled no matter the support.

If this is in category 1, we should investigate whether support was not added. If we don't know, it's better to disable it, in which case I'll put it to the cross file.

> >  					['RTE_MAX_LCORE', 36],
> >  					['RTE_MAX_NUMA_NODES', 1]
> >  				]
> > diff --git a/drivers/meson.build b/drivers/meson.build index
> > 4bb7e9218..a997387ad 100644
> > --- a/drivers/meson.build
> > +++ b/drivers/meson.build
> > @@ -18,9 +18,13 @@ subdirs = [
> >  	'baseband', # depends on common and bus.
> >  ]
> >
> > -disabled_drivers = run_command(list_dir_globs,
> > get_option('disable_drivers'),
> > +disabled_drivers += run_command(list_dir_globs,
> > +get_option('disable_drivers'),
> >  		).stdout().split()
> >
> > +if meson.is_cross_build()
> > +	disabled_drivers += meson.get_cross_property('disabled_drivers', [])
> > +endif
> > +
> >  default_cflags = machine_args
> >  default_cflags += ['-DALLOW_EXPERIMENTAL_API']  default_cflags += ['-
> > DALLOW_INTERNAL_API'] diff --git a/meson.build b/meson.build index
> > 61d9a4f5f..8dadd70dc 100644
> > --- a/meson.build
> > +++ b/meson.build
> > @@ -21,6 +21,7 @@ dpdk_drivers = []
> >  dpdk_extra_ldflags = []
> >  dpdk_libs_disabled = []
> >  dpdk_drvs_disabled = []
> > +disabled_drivers = []
> >  abi_version_file = files('ABI_VERSION')
> >
> >  if host_machine.cpu_family().startswith('x86')
> > --
> > 2.20.1
  
Honnappa Nagarahalli Nov. 9, 2020, 11:27 p.m. UTC | #3
<snip>

> >
> > >
> > > A few options that disabled drivers in the old makefiles were
> > > improperly ported to the meson build system. Fix this by adding a to
> > > the list of disabled
> > The fixes need to be separated into a different commit as they need to
> > be backported.
> > It would be good to get the fix patch as the first patch, it will be
> > easy to backport.
> >
> 
> Ok, I'll add support for disabling drivers for native and cross builds (that will be
> an independent easily portable change) and put the rest into a separate patch.
> That would be a compromise between v7 and v8.
I did not understand the last sentence.

> 
> > > drivers, similarly how the command line option works. Remove
> > > unneeded driver options ported from the old makefile system.
> > > Add support for removing drivers for cross builds.
> > >
> > > Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
> > > Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> > > ---
> > >  config/arm/arm64_armada_linux_gcc | 1 +
> > > config/arm/arm64_armv8_linux_gcc  | 3 +++
> > >  config/arm/meson.build            | 7 +++----
> > >  drivers/meson.build               | 6 +++++-
> > >  meson.build                       | 1 +
> > >  5 files changed, 13 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/config/arm/arm64_armada_linux_gcc
> > > b/config/arm/arm64_armada_linux_gcc
> > > index 73945fbb4..7383f42e2 100644
> > > --- a/config/arm/arm64_armada_linux_gcc
> > > +++ b/config/arm/arm64_armada_linux_gcc
> > > @@ -17,3 +17,4 @@ endian = 'little'
> > >  implementer_id = '0x56'
> > >  max_lcores = 16
> > >  max_numa_nodes = 1
> > > +disabled_drivers = ['bus/dpaa', 'bus/fslmc', 'common/dpaax']
> > > diff --git a/config/arm/arm64_armv8_linux_gcc
> > > b/config/arm/arm64_armv8_linux_gcc
> > > index fb24be5fc..245e06e5f 100644
> > > --- a/config/arm/arm64_armv8_linux_gcc
> > > +++ b/config/arm/arm64_armv8_linux_gcc
> > > @@ -52,3 +52,6 @@ part_number = 'generic'
> > >  # max_lcores = n      # will set RTE_MAX_LCORE
> > >  max_lcores = 256
> > >  max_numa_nodes = 4
> > > +
> > > +# disabled_drivers = ['bus/dpaa', 'crypto']
> > > +    # add to the set of disabled libraries
> > > diff --git a/config/arm/meson.build b/config/arm/meson.build index
> > > e9bb60045..a39a35b6a 100644
> > > --- a/config/arm/meson.build
> > > +++ b/config/arm/meson.build
> > > @@ -3,6 +3,9 @@
> > >  # Copyright(c) 2017 Cavium, Inc
> > >  # Copyright(c) 2020 PANTHEON.tech s.r.o.
> > >
> > > +# disable Arm drivers for all builds disabled_drivers +=
> > > +['net/avp', 'net/fm10k']
> > > +
> > >  # common flags to all aarch64 builds, with lowest priority
> > > flags_common_default = [
> > >  	# Accelarate rte_memcpy. Be sure to run unit test
> > > (memcpy_perf_autotest) @@ -17,9 +20,6 @@ flags_common_default = [
> > >  	#	['RTE_ARM64_MEMCPY_ALIGN_MASK', 0xF],
> > >  	#	['RTE_ARM64_MEMCPY_STRICT_ALIGN', false],
> > >
> > > -	['RTE_NET_FM10K', false],
> > > -	['RTE_NET_AVP', false],
> > > -
> > >  	['RTE_SCHED_VECTOR', false],
> > >  	['RTE_ARM_USE_WFE', false],
> > >  	['RTE_ARCH_ARM64', true],
> > > @@ -124,7 +124,6 @@ implementers = {
> > >  					['RTE_MACHINE', '"octeontx2"'],
> > >  					['RTE_ARM_FEATURE_ATOMICS',
> > > true],
> > >  					['RTE_USE_C11_MEM_MODEL', true],
> > > -					['RTE_EAL_IGB_UIO', false],
> > Does this need to go to octeon tx2 cross file?
> >
> 
> Possibly.
> Based on my understanding of the old makefile config (which could be wrong),
> I think there are two categories here:
> 1. drivers which were disabled because they weren't supported at all or just on
> that platform.
> 2. drivers which were explicitly disabled no matter the support.
> 
> If this is in category 1, we should investigate whether support was not added.
> If we don't know, it's better to disable it, in which case I'll put it to the cross
> file.
I think all the platforms have moved to VFIO. It should be fine to disable this.

> 
> > >  					['RTE_MAX_LCORE', 36],
> > >  					['RTE_MAX_NUMA_NODES', 1]
> > >  				]
> > > diff --git a/drivers/meson.build b/drivers/meson.build index
> > > 4bb7e9218..a997387ad 100644
> > > --- a/drivers/meson.build
> > > +++ b/drivers/meson.build
> > > @@ -18,9 +18,13 @@ subdirs = [
> > >  	'baseband', # depends on common and bus.
> > >  ]
> > >
> > > -disabled_drivers = run_command(list_dir_globs,
> > > get_option('disable_drivers'),
> > > +disabled_drivers += run_command(list_dir_globs,
> > > +get_option('disable_drivers'),
> > >  		).stdout().split()
> > >
> > > +if meson.is_cross_build()
> > > +	disabled_drivers += meson.get_cross_property('disabled_drivers',
> > > +[]) endif
> > > +
> > >  default_cflags = machine_args
> > >  default_cflags += ['-DALLOW_EXPERIMENTAL_API']  default_cflags +=
> > > ['- DALLOW_INTERNAL_API'] diff --git a/meson.build b/meson.build
> > > index 61d9a4f5f..8dadd70dc 100644
> > > --- a/meson.build
> > > +++ b/meson.build
> > > @@ -21,6 +21,7 @@ dpdk_drivers = []
> > >  dpdk_extra_ldflags = []
> > >  dpdk_libs_disabled = []
> > >  dpdk_drvs_disabled = []
> > > +disabled_drivers = []
> > >  abi_version_file = files('ABI_VERSION')
> > >
> > >  if host_machine.cpu_family().startswith('x86')
> > > --
> > > 2.20.1
  
Juraj Linkeš Nov. 10, 2020, 9:03 a.m. UTC | #4
> -----Original Message-----
> From: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
> Sent: Tuesday, November 10, 2020 12:27 AM
> To: Juraj Linkeš <juraj.linkes@pantheon.tech>; bruce.richardson@intel.com;
> Ruifeng Wang <Ruifeng.Wang@arm.com>; Phil Yang <Phil.Yang@arm.com>;
> vcchunga@amazon.com; Dharmik Thakkar <Dharmik.Thakkar@arm.com>;
> jerinjacobk@gmail.com; hemant.agrawal@nxp.com; Ajit Khaparde
> (ajit.khaparde@broadcom.com) <ajit.khaparde@broadcom.com>;
> ferruh.yigit@intel.com; aconole@redhat.com
> Cc: dev@dpdk.org; nd <nd@arm.com>; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; nd <nd@arm.com>
> Subject: RE: [PATCH v8 12/14] build: disable Arm drivers
> 
> <snip>
> 
> > >
> > > >
> > > > A few options that disabled drivers in the old makefiles were
> > > > improperly ported to the meson build system. Fix this by adding a
> > > > to the list of disabled
> > > The fixes need to be separated into a different commit as they need
> > > to be backported.
> > > It would be good to get the fix patch as the first patch, it will be
> > > easy to backport.
> > >
> >
> > Ok, I'll add support for disabling drivers for native and cross builds
> > (that will be an independent easily portable change) and put the rest into a
> separate patch.
> > That would be a compromise between v7 and v8.
> I did not understand the last sentence.
> 

A compromise between version 7 of the series and version 8 of the series. V7 had the support for arm disabling drivers in non-cross builds in one commit and support for cross builds in another patch, v8 joined the two patches and the new version will be in between.

> >
> > > > drivers, similarly how the command line option works. Remove
> > > > unneeded driver options ported from the old makefile system.
> > > > Add support for removing drivers for cross builds.
> > > >
> > > > Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
> > > > Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> > > > ---
> > > >  config/arm/arm64_armada_linux_gcc | 1 +
> > > > config/arm/arm64_armv8_linux_gcc  | 3 +++
> > > >  config/arm/meson.build            | 7 +++----
> > > >  drivers/meson.build               | 6 +++++-
> > > >  meson.build                       | 1 +
> > > >  5 files changed, 13 insertions(+), 5 deletions(-)
> > > >
> > > > diff --git a/config/arm/arm64_armada_linux_gcc
> > > > b/config/arm/arm64_armada_linux_gcc
> > > > index 73945fbb4..7383f42e2 100644
> > > > --- a/config/arm/arm64_armada_linux_gcc
> > > > +++ b/config/arm/arm64_armada_linux_gcc
> > > > @@ -17,3 +17,4 @@ endian = 'little'
> > > >  implementer_id = '0x56'
> > > >  max_lcores = 16
> > > >  max_numa_nodes = 1
> > > > +disabled_drivers = ['bus/dpaa', 'bus/fslmc', 'common/dpaax']
> > > > diff --git a/config/arm/arm64_armv8_linux_gcc
> > > > b/config/arm/arm64_armv8_linux_gcc
> > > > index fb24be5fc..245e06e5f 100644
> > > > --- a/config/arm/arm64_armv8_linux_gcc
> > > > +++ b/config/arm/arm64_armv8_linux_gcc
> > > > @@ -52,3 +52,6 @@ part_number = 'generic'
> > > >  # max_lcores = n      # will set RTE_MAX_LCORE
> > > >  max_lcores = 256
> > > >  max_numa_nodes = 4
> > > > +
> > > > +# disabled_drivers = ['bus/dpaa', 'crypto']
> > > > +    # add to the set of disabled libraries
> > > > diff --git a/config/arm/meson.build b/config/arm/meson.build index
> > > > e9bb60045..a39a35b6a 100644
> > > > --- a/config/arm/meson.build
> > > > +++ b/config/arm/meson.build
> > > > @@ -3,6 +3,9 @@
> > > >  # Copyright(c) 2017 Cavium, Inc
> > > >  # Copyright(c) 2020 PANTHEON.tech s.r.o.
> > > >
> > > > +# disable Arm drivers for all builds disabled_drivers +=
> > > > +['net/avp', 'net/fm10k']
> > > > +
> > > >  # common flags to all aarch64 builds, with lowest priority
> > > > flags_common_default = [
> > > >  	# Accelarate rte_memcpy. Be sure to run unit test
> > > > (memcpy_perf_autotest) @@ -17,9 +20,6 @@ flags_common_default = [
> > > >  	#	['RTE_ARM64_MEMCPY_ALIGN_MASK', 0xF],
> > > >  	#	['RTE_ARM64_MEMCPY_STRICT_ALIGN', false],
> > > >
> > > > -	['RTE_NET_FM10K', false],
> > > > -	['RTE_NET_AVP', false],
> > > > -
> > > >  	['RTE_SCHED_VECTOR', false],
> > > >  	['RTE_ARM_USE_WFE', false],
> > > >  	['RTE_ARCH_ARM64', true],
> > > > @@ -124,7 +124,6 @@ implementers = {
> > > >  					['RTE_MACHINE', '"octeontx2"'],
> > > >  					['RTE_ARM_FEATURE_ATOMICS',
> > > > true],
> > > >  					['RTE_USE_C11_MEM_MODEL', true],
> > > > -					['RTE_EAL_IGB_UIO', false],
> > > Does this need to go to octeon tx2 cross file?
> > >
> >
> > Possibly.
> > Based on my understanding of the old makefile config (which could be
> > wrong), I think there are two categories here:
> > 1. drivers which were disabled because they weren't supported at all
> > or just on that platform.
> > 2. drivers which were explicitly disabled no matter the support.
> >
> > If this is in category 1, we should investigate whether support was not added.
> > If we don't know, it's better to disable it, in which case I'll put it
> > to the cross file.
> I think all the platforms have moved to VFIO. It should be fine to disable this.
> 

Do you mean all arm platforms? If so, I'll add this to disabled drivers for all arm builds instead of just one soc.

> >
> > > >  					['RTE_MAX_LCORE', 36],
> > > >  					['RTE_MAX_NUMA_NODES', 1]
> > > >  				]
> > > > diff --git a/drivers/meson.build b/drivers/meson.build index
> > > > 4bb7e9218..a997387ad 100644
> > > > --- a/drivers/meson.build
> > > > +++ b/drivers/meson.build
> > > > @@ -18,9 +18,13 @@ subdirs = [
> > > >  	'baseband', # depends on common and bus.
> > > >  ]
> > > >
> > > > -disabled_drivers = run_command(list_dir_globs,
> > > > get_option('disable_drivers'),
> > > > +disabled_drivers += run_command(list_dir_globs,
> > > > +get_option('disable_drivers'),
> > > >  		).stdout().split()
> > > >
> > > > +if meson.is_cross_build()
> > > > +	disabled_drivers += meson.get_cross_property('disabled_drivers',
> > > > +[]) endif
> > > > +
> > > >  default_cflags = machine_args
> > > >  default_cflags += ['-DALLOW_EXPERIMENTAL_API']  default_cflags +=
> > > > ['- DALLOW_INTERNAL_API'] diff --git a/meson.build b/meson.build
> > > > index 61d9a4f5f..8dadd70dc 100644
> > > > --- a/meson.build
> > > > +++ b/meson.build
> > > > @@ -21,6 +21,7 @@ dpdk_drivers = []  dpdk_extra_ldflags = []
> > > > dpdk_libs_disabled = []  dpdk_drvs_disabled = []
> > > > +disabled_drivers = []
> > > >  abi_version_file = files('ABI_VERSION')
> > > >
> > > >  if host_machine.cpu_family().startswith('x86')
> > > > --
> > > > 2.20.1
  
Honnappa Nagarahalli Nov. 10, 2020, 3:13 p.m. UTC | #5
<snip>

> > > > >
> > > > > A few options that disabled drivers in the old makefiles were
> > > > > improperly ported to the meson build system. Fix this by adding
> > > > > a to the list of disabled
> > > > The fixes need to be separated into a different commit as they
> > > > need to be backported.
> > > > It would be good to get the fix patch as the first patch, it will
> > > > be easy to backport.
> > > >
> > >
> > > Ok, I'll add support for disabling drivers for native and cross
> > > builds (that will be an independent easily portable change) and put
> > > the rest into a
> > separate patch.
> > > That would be a compromise between v7 and v8.
> > I did not understand the last sentence.
> >
> 
> A compromise between version 7 of the series and version 8 of the series. V7
> had the support for arm disabling drivers in non-cross builds in one commit
> and support for cross builds in another patch, v8 joined the two patches and
> the new version will be in between.
> 
> > >
> > > > > drivers, similarly how the command line option works. Remove
> > > > > unneeded driver options ported from the old makefile system.
> > > > > Add support for removing drivers for cross builds.
> > > > >
> > > > > Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
> > > > > Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> > > > > ---
> > > > >  config/arm/arm64_armada_linux_gcc | 1 +
> > > > > config/arm/arm64_armv8_linux_gcc  | 3 +++
> > > > >  config/arm/meson.build            | 7 +++----
> > > > >  drivers/meson.build               | 6 +++++-
> > > > >  meson.build                       | 1 +
> > > > >  5 files changed, 13 insertions(+), 5 deletions(-)
> > > > >
> > > > > diff --git a/config/arm/arm64_armada_linux_gcc
> > > > > b/config/arm/arm64_armada_linux_gcc
> > > > > index 73945fbb4..7383f42e2 100644
> > > > > --- a/config/arm/arm64_armada_linux_gcc
> > > > > +++ b/config/arm/arm64_armada_linux_gcc
> > > > > @@ -17,3 +17,4 @@ endian = 'little'
> > > > >  implementer_id = '0x56'
> > > > >  max_lcores = 16
> > > > >  max_numa_nodes = 1
> > > > > +disabled_drivers = ['bus/dpaa', 'bus/fslmc', 'common/dpaax']
> > > > > diff --git a/config/arm/arm64_armv8_linux_gcc
> > > > > b/config/arm/arm64_armv8_linux_gcc
> > > > > index fb24be5fc..245e06e5f 100644
> > > > > --- a/config/arm/arm64_armv8_linux_gcc
> > > > > +++ b/config/arm/arm64_armv8_linux_gcc
> > > > > @@ -52,3 +52,6 @@ part_number = 'generic'
> > > > >  # max_lcores = n      # will set RTE_MAX_LCORE
> > > > >  max_lcores = 256
> > > > >  max_numa_nodes = 4
> > > > > +
> > > > > +# disabled_drivers = ['bus/dpaa', 'crypto']
> > > > > +    # add to the set of disabled libraries
> > > > > diff --git a/config/arm/meson.build b/config/arm/meson.build
> > > > > index e9bb60045..a39a35b6a 100644
> > > > > --- a/config/arm/meson.build
> > > > > +++ b/config/arm/meson.build
> > > > > @@ -3,6 +3,9 @@
> > > > >  # Copyright(c) 2017 Cavium, Inc  # Copyright(c) 2020
> > > > > PANTHEON.tech s.r.o.
> > > > >
> > > > > +# disable Arm drivers for all builds disabled_drivers +=
> > > > > +['net/avp', 'net/fm10k']
> > > > > +
> > > > >  # common flags to all aarch64 builds, with lowest priority
> > > > > flags_common_default = [
> > > > >  	# Accelarate rte_memcpy. Be sure to run unit test
> > > > > (memcpy_perf_autotest) @@ -17,9 +20,6 @@ flags_common_default
> = [
> > > > >  	#	['RTE_ARM64_MEMCPY_ALIGN_MASK', 0xF],
> > > > >  	#	['RTE_ARM64_MEMCPY_STRICT_ALIGN', false],
> > > > >
> > > > > -	['RTE_NET_FM10K', false],
> > > > > -	['RTE_NET_AVP', false],
> > > > > -
> > > > >  	['RTE_SCHED_VECTOR', false],
> > > > >  	['RTE_ARM_USE_WFE', false],
> > > > >  	['RTE_ARCH_ARM64', true],
> > > > > @@ -124,7 +124,6 @@ implementers = {
> > > > >  					['RTE_MACHINE', '"octeontx2"'],
> > > > >  					['RTE_ARM_FEATURE_ATOMICS',
> true],
> > > > >  					['RTE_USE_C11_MEM_MODEL', true],
> > > > > -					['RTE_EAL_IGB_UIO', false],
> > > > Does this need to go to octeon tx2 cross file?
> > > >
> > >
> > > Possibly.
> > > Based on my understanding of the old makefile config (which could be
> > > wrong), I think there are two categories here:
> > > 1. drivers which were disabled because they weren't supported at all
> > > or just on that platform.
> > > 2. drivers which were explicitly disabled no matter the support.
> > >
> > > If this is in category 1, we should investigate whether support was not
> added.
> > > If we don't know, it's better to disable it, in which case I'll put
> > > it to the cross file.
> > I think all the platforms have moved to VFIO. It should be fine to disable this.
> >
> 
> Do you mean all arm platforms? If so, I'll add this to disabled drivers for all arm
> builds instead of just one soc.
Jerin, Hemant, can you comment on this?

> 
> > >
> > > > >  					['RTE_MAX_LCORE', 36],
> > > > >  					['RTE_MAX_NUMA_NODES', 1]
> > > > >  				]
> > > > > diff --git a/drivers/meson.build b/drivers/meson.build index
> > > > > 4bb7e9218..a997387ad 100644
> > > > > --- a/drivers/meson.build
> > > > > +++ b/drivers/meson.build
> > > > > @@ -18,9 +18,13 @@ subdirs = [
> > > > >  	'baseband', # depends on common and bus.
> > > > >  ]
> > > > >
> > > > > -disabled_drivers = run_command(list_dir_globs,
> > > > > get_option('disable_drivers'),
> > > > > +disabled_drivers += run_command(list_dir_globs,
> > > > > +get_option('disable_drivers'),
> > > > >  		).stdout().split()
> > > > >
> > > > > +if meson.is_cross_build()
> > > > > +	disabled_drivers +=
> > > > > +meson.get_cross_property('disabled_drivers',
> > > > > +[]) endif
> > > > > +
> > > > >  default_cflags = machine_args
> > > > >  default_cflags += ['-DALLOW_EXPERIMENTAL_API']  default_cflags
> > > > > +=
> > > > > ['- DALLOW_INTERNAL_API'] diff --git a/meson.build b/meson.build
> > > > > index 61d9a4f5f..8dadd70dc 100644
> > > > > --- a/meson.build
> > > > > +++ b/meson.build
> > > > > @@ -21,6 +21,7 @@ dpdk_drivers = []  dpdk_extra_ldflags = []
> > > > > dpdk_libs_disabled = []  dpdk_drvs_disabled = []
> > > > > +disabled_drivers = []
> > > > >  abi_version_file = files('ABI_VERSION')
> > > > >
> > > > >  if host_machine.cpu_family().startswith('x86')
> > > > > --
> > > > > 2.20.1
  
Juraj Linkeš Nov. 11, 2020, 10:10 a.m. UTC | #6
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Juraj Linkeš
> Sent: Tuesday, November 10, 2020 10:03 AM
> To: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>;
> bruce.richardson@intel.com; Ruifeng Wang <Ruifeng.Wang@arm.com>; Phil
> Yang <Phil.Yang@arm.com>; vcchunga@amazon.com; Dharmik Thakkar
> <Dharmik.Thakkar@arm.com>; jerinjacobk@gmail.com;
> hemant.agrawal@nxp.com; Ajit Khaparde (ajit.khaparde@broadcom.com)
> <ajit.khaparde@broadcom.com>; ferruh.yigit@intel.com; aconole@redhat.com
> Cc: dev@dpdk.org; nd <nd@arm.com>; nd <nd@arm.com>
> Subject: Re: [dpdk-dev] [PATCH v8 12/14] build: disable Arm drivers
> 
> 
> 
> > -----Original Message-----
> > From: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
> > Sent: Tuesday, November 10, 2020 12:27 AM
> > To: Juraj Linkeš <juraj.linkes@pantheon.tech>;
> > bruce.richardson@intel.com; Ruifeng Wang <Ruifeng.Wang@arm.com>; Phil
> > Yang <Phil.Yang@arm.com>; vcchunga@amazon.com; Dharmik Thakkar
> > <Dharmik.Thakkar@arm.com>; jerinjacobk@gmail.com;
> > hemant.agrawal@nxp.com; Ajit Khaparde
> > (ajit.khaparde@broadcom.com) <ajit.khaparde@broadcom.com>;
> > ferruh.yigit@intel.com; aconole@redhat.com
> > Cc: dev@dpdk.org; nd <nd@arm.com>; Honnappa Nagarahalli
> > <Honnappa.Nagarahalli@arm.com>; nd <nd@arm.com>
> > Subject: RE: [PATCH v8 12/14] build: disable Arm drivers
> >
> > <snip>
> >
> > > >
> > > > >
> > > > > A few options that disabled drivers in the old makefiles were
> > > > > improperly ported to the meson build system. Fix this by adding
> > > > > a to the list of disabled
> > > > The fixes need to be separated into a different commit as they
> > > > need to be backported.
> > > > It would be good to get the fix patch as the first patch, it will
> > > > be easy to backport.
> > > >
> > >
> > > Ok, I'll add support for disabling drivers for native and cross
> > > builds (that will be an independent easily portable change) and put
> > > the rest into a
> > separate patch.
> > > That would be a compromise between v7 and v8.
> > I did not understand the last sentence.
> >
> 
> A compromise between version 7 of the series and version 8 of the series. V7
> had the support for arm disabling drivers in non-cross builds in one commit and
> support for cross builds in another patch, v8 joined the two patches and the new
> version will be in between.
> 

Now that I'm looking at the patch, what exactly do you want to separate? The patch fixes what the previous arm makefile driver config (such as CONFIG_RTE_LIBRTE_FM10K_PMD or CONFIG_RTE_LIBRTE_DPAA_BUS) did - some of the config was applicable to all builds, some only to the Armada SoC (implemented in cross files). The commit is standalone as it does not depend on anything and should thus be easy to backport.

> > >
> > > > > drivers, similarly how the command line option works. Remove
> > > > > unneeded driver options ported from the old makefile system.
> > > > > Add support for removing drivers for cross builds.
> > > > >
> > > > > Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
> > > > > Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> > > > > ---
> > > > >  config/arm/arm64_armada_linux_gcc | 1 +
> > > > > config/arm/arm64_armv8_linux_gcc  | 3 +++
> > > > >  config/arm/meson.build            | 7 +++----
> > > > >  drivers/meson.build               | 6 +++++-
> > > > >  meson.build                       | 1 +
> > > > >  5 files changed, 13 insertions(+), 5 deletions(-)
> > > > >
> > > > > diff --git a/config/arm/arm64_armada_linux_gcc
> > > > > b/config/arm/arm64_armada_linux_gcc
> > > > > index 73945fbb4..7383f42e2 100644
> > > > > --- a/config/arm/arm64_armada_linux_gcc
> > > > > +++ b/config/arm/arm64_armada_linux_gcc
> > > > > @@ -17,3 +17,4 @@ endian = 'little'
> > > > >  implementer_id = '0x56'
> > > > >  max_lcores = 16
> > > > >  max_numa_nodes = 1
> > > > > +disabled_drivers = ['bus/dpaa', 'bus/fslmc', 'common/dpaax']
> > > > > diff --git a/config/arm/arm64_armv8_linux_gcc
> > > > > b/config/arm/arm64_armv8_linux_gcc
> > > > > index fb24be5fc..245e06e5f 100644
> > > > > --- a/config/arm/arm64_armv8_linux_gcc
> > > > > +++ b/config/arm/arm64_armv8_linux_gcc
> > > > > @@ -52,3 +52,6 @@ part_number = 'generic'
> > > > >  # max_lcores = n      # will set RTE_MAX_LCORE
> > > > >  max_lcores = 256
> > > > >  max_numa_nodes = 4
> > > > > +
> > > > > +# disabled_drivers = ['bus/dpaa', 'crypto']
> > > > > +    # add to the set of disabled libraries
> > > > > diff --git a/config/arm/meson.build b/config/arm/meson.build
> > > > > index e9bb60045..a39a35b6a 100644
> > > > > --- a/config/arm/meson.build
> > > > > +++ b/config/arm/meson.build
> > > > > @@ -3,6 +3,9 @@
> > > > >  # Copyright(c) 2017 Cavium, Inc  # Copyright(c) 2020
> > > > > PANTHEON.tech s.r.o.
> > > > >
> > > > > +# disable Arm drivers for all builds disabled_drivers +=
> > > > > +['net/avp', 'net/fm10k']
> > > > > +
> > > > >  # common flags to all aarch64 builds, with lowest priority
> > > > > flags_common_default = [
> > > > >  	# Accelarate rte_memcpy. Be sure to run unit test
> > > > > (memcpy_perf_autotest) @@ -17,9 +20,6 @@ flags_common_default =
> [
> > > > >  	#	['RTE_ARM64_MEMCPY_ALIGN_MASK', 0xF],
> > > > >  	#	['RTE_ARM64_MEMCPY_STRICT_ALIGN', false],
> > > > >
> > > > > -	['RTE_NET_FM10K', false],
> > > > > -	['RTE_NET_AVP', false],
> > > > > -
> > > > >  	['RTE_SCHED_VECTOR', false],
> > > > >  	['RTE_ARM_USE_WFE', false],
> > > > >  	['RTE_ARCH_ARM64', true],
> > > > > @@ -124,7 +124,6 @@ implementers = {
> > > > >  					['RTE_MACHINE', '"octeontx2"'],
> > > > >  					['RTE_ARM_FEATURE_ATOMICS', true],
> > > > >  					['RTE_USE_C11_MEM_MODEL', true],
> > > > > -					['RTE_EAL_IGB_UIO', false],
> > > > Does this need to go to octeon tx2 cross file?
> > > >
> > >
> > > Possibly.
> > > Based on my understanding of the old makefile config (which could be
> > > wrong), I think there are two categories here:
> > > 1. drivers which were disabled because they weren't supported at all
> > > or just on that platform.
> > > 2. drivers which were explicitly disabled no matter the support.
> > >
> > > If this is in category 1, we should investigate whether support was not
> added.
> > > If we don't know, it's better to disable it, in which case I'll put
> > > it to the cross file.
> > I think all the platforms have moved to VFIO. It should be fine to disable this.
> >
> 
> Do you mean all arm platforms? If so, I'll add this to disabled drivers for all arm
> builds instead of just one soc.
> 
> > >
> > > > >  					['RTE_MAX_LCORE', 36],
> > > > >  					['RTE_MAX_NUMA_NODES', 1]
> > > > >  				]
> > > > > diff --git a/drivers/meson.build b/drivers/meson.build index
> > > > > 4bb7e9218..a997387ad 100644
> > > > > --- a/drivers/meson.build
> > > > > +++ b/drivers/meson.build
> > > > > @@ -18,9 +18,13 @@ subdirs = [
> > > > >  	'baseband', # depends on common and bus.
> > > > >  ]
> > > > >
> > > > > -disabled_drivers = run_command(list_dir_globs,
> > > > > get_option('disable_drivers'),
> > > > > +disabled_drivers += run_command(list_dir_globs,
> > > > > +get_option('disable_drivers'),
> > > > >  		).stdout().split()
> > > > >
> > > > > +if meson.is_cross_build()
> > > > > +	disabled_drivers +=
> > > > > +meson.get_cross_property('disabled_drivers',
> > > > > +[]) endif
> > > > > +
> > > > >  default_cflags = machine_args
> > > > >  default_cflags += ['-DALLOW_EXPERIMENTAL_API']  default_cflags
> > > > > +=
> > > > > ['- DALLOW_INTERNAL_API'] diff --git a/meson.build b/meson.build
> > > > > index 61d9a4f5f..8dadd70dc 100644
> > > > > --- a/meson.build
> > > > > +++ b/meson.build
> > > > > @@ -21,6 +21,7 @@ dpdk_drivers = []  dpdk_extra_ldflags = []
> > > > > dpdk_libs_disabled = []  dpdk_drvs_disabled = []
> > > > > +disabled_drivers = []
> > > > >  abi_version_file = files('ABI_VERSION')
> > > > >
> > > > >  if host_machine.cpu_family().startswith('x86')
> > > > > --
> > > > > 2.20.1
  

Patch

diff --git a/config/arm/arm64_armada_linux_gcc b/config/arm/arm64_armada_linux_gcc
index 73945fbb4..7383f42e2 100644
--- a/config/arm/arm64_armada_linux_gcc
+++ b/config/arm/arm64_armada_linux_gcc
@@ -17,3 +17,4 @@  endian = 'little'
 implementer_id = '0x56'
 max_lcores = 16
 max_numa_nodes = 1
+disabled_drivers = ['bus/dpaa', 'bus/fslmc', 'common/dpaax']
diff --git a/config/arm/arm64_armv8_linux_gcc b/config/arm/arm64_armv8_linux_gcc
index fb24be5fc..245e06e5f 100644
--- a/config/arm/arm64_armv8_linux_gcc
+++ b/config/arm/arm64_armv8_linux_gcc
@@ -52,3 +52,6 @@  part_number = 'generic'
 # max_lcores = n      # will set RTE_MAX_LCORE
 max_lcores = 256
 max_numa_nodes = 4
+
+# disabled_drivers = ['bus/dpaa', 'crypto']
+    # add to the set of disabled libraries
diff --git a/config/arm/meson.build b/config/arm/meson.build
index e9bb60045..a39a35b6a 100644
--- a/config/arm/meson.build
+++ b/config/arm/meson.build
@@ -3,6 +3,9 @@ 
 # Copyright(c) 2017 Cavium, Inc
 # Copyright(c) 2020 PANTHEON.tech s.r.o.
 
+# disable Arm drivers for all builds
+disabled_drivers += ['net/avp', 'net/fm10k']
+
 # common flags to all aarch64 builds, with lowest priority
 flags_common_default = [
 	# Accelarate rte_memcpy. Be sure to run unit test (memcpy_perf_autotest)
@@ -17,9 +20,6 @@  flags_common_default = [
 	#	['RTE_ARM64_MEMCPY_ALIGN_MASK', 0xF],
 	#	['RTE_ARM64_MEMCPY_STRICT_ALIGN', false],
 
-	['RTE_NET_FM10K', false],
-	['RTE_NET_AVP', false],
-
 	['RTE_SCHED_VECTOR', false],
 	['RTE_ARM_USE_WFE', false],
 	['RTE_ARCH_ARM64', true],
@@ -124,7 +124,6 @@  implementers = {
 					['RTE_MACHINE', '"octeontx2"'],
 					['RTE_ARM_FEATURE_ATOMICS', true],
 					['RTE_USE_C11_MEM_MODEL', true],
-					['RTE_EAL_IGB_UIO', false],
 					['RTE_MAX_LCORE', 36],
 					['RTE_MAX_NUMA_NODES', 1]
 				]
diff --git a/drivers/meson.build b/drivers/meson.build
index 4bb7e9218..a997387ad 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -18,9 +18,13 @@  subdirs = [
 	'baseband', # depends on common and bus.
 ]
 
-disabled_drivers = run_command(list_dir_globs, get_option('disable_drivers'),
+disabled_drivers += run_command(list_dir_globs, get_option('disable_drivers'),
 		).stdout().split()
 
+if meson.is_cross_build()
+	disabled_drivers += meson.get_cross_property('disabled_drivers', [])
+endif
+
 default_cflags = machine_args
 default_cflags += ['-DALLOW_EXPERIMENTAL_API']
 default_cflags += ['-DALLOW_INTERNAL_API']
diff --git a/meson.build b/meson.build
index 61d9a4f5f..8dadd70dc 100644
--- a/meson.build
+++ b/meson.build
@@ -21,6 +21,7 @@  dpdk_drivers = []
 dpdk_extra_ldflags = []
 dpdk_libs_disabled = []
 dpdk_drvs_disabled = []
+disabled_drivers = []
 abi_version_file = files('ABI_VERSION')
 
 if host_machine.cpu_family().startswith('x86')