* [dpdk-dev] [PATCH 1/2] build: avoid non supported -march on ppc (meson)
@ 2018-11-14 11:34 Christian Ehrhardt
2018-11-14 11:34 ` [dpdk-dev] [PATCH 2/2] build: establish an invariant machine type Christian Ehrhardt
2018-11-14 11:39 ` [dpdk-dev] [PATCH 1/2] build: avoid non supported -march on ppc (meson) Luca Boccassi
0 siblings, 2 replies; 17+ messages in thread
From: Christian Ehrhardt @ 2018-11-14 11:34 UTC (permalink / raw)
To: Luca Boccassi, dev; +Cc: Christian Ehrhardt
So far only if machine was "native" it did use the re-direction to
not set -march on ppc64 (where -march is not supported).
We have to use mcpu/mtune in any case on ppc for whatever someone using
the build system defines as machine.
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
---
config/meson.build | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/config/meson.build b/config/meson.build
index 0b710b795..1af305f46 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -9,8 +9,9 @@ else
endif
dpdk_conf.set('RTE_MACHINE', machine)
machine_args = []
-# ppc64 does not support -march=native
-if host_machine.cpu_family().startswith('ppc') and machine == 'native'
+
+# ppc64 does not support -march= at all, use -mcpu and -mtune for that
+if host_machine.cpu_family().startswith('ppc')
machine_args += '-mcpu=' + machine
machine_args += '-mtune=' + machine
else
--
2.17.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH 2/2] build: establish an invariant machine type
2018-11-14 11:34 [dpdk-dev] [PATCH 1/2] build: avoid non supported -march on ppc (meson) Christian Ehrhardt
@ 2018-11-14 11:34 ` Christian Ehrhardt
2018-11-14 11:40 ` Luca Boccassi
2018-11-14 13:06 ` [dpdk-dev] [PATCH 2/2] build: establish an invariant machine type Luca Boccassi
2018-11-14 11:39 ` [dpdk-dev] [PATCH 1/2] build: avoid non supported -march on ppc (meson) Luca Boccassi
1 sibling, 2 replies; 17+ messages in thread
From: Christian Ehrhardt @ 2018-11-14 11:34 UTC (permalink / raw)
To: Luca Boccassi, dev; +Cc: Christian Ehrhardt
Add the machine definition 'baseline' which is special compared
to 'native' (most optimized for current system) or any explicit
type (external entity has to decide on the type).
It defaults to the per arch agreed common minimal baseline
needed for DPDK to reasonable work.
That might not be the most optimized, but the most portable
version while still being able to support the CPU features
required for DPDK.
Going forward this can be bumped up by the DPDK project, but it
can never be an invariant like 'native'.
Distributions and other needing portable code are expected to
define the machine as 'baseline'.
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
---
config/meson.build | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/config/meson.build b/config/meson.build
index 1af305f46..23f612457 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -7,6 +7,27 @@ if meson.is_cross_build()
else
machine = get_option('machine')
endif
+
+# machine type 'baseline' is special, it defaults to the per arch agreed common
+# minimal baseline needed for DPDK.
+# That might not be the most optimized, but the most portable version while
+# still being able to support the CPU features required for DPDK.
+# This can be bumped up by the DPDK project, but it can never be an
+# invariant like 'native'
+if machine == 'baseline'
+ if host_machine.cpu_family().startswith('x86')
+ # matches the old pre-meson build systems default
+ machine = 'corei7'
+ elif host_machine.cpu_family().startswith('arm')
+ machine = 'armv7a'
+ elif host_machine.cpu_family().startswith('aarch')
+ # arm64 manages defaults in config/arm/meson.build
+ machine = 'default'
+ elif host_machine.cpu_family().startswith('ppc')
+ machine = 'power8'
+ endif
+endif
+
dpdk_conf.set('RTE_MACHINE', machine)
machine_args = []
--
2.17.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH 1/2] build: avoid non supported -march on ppc (meson)
2018-11-14 11:34 [dpdk-dev] [PATCH 1/2] build: avoid non supported -march on ppc (meson) Christian Ehrhardt
2018-11-14 11:34 ` [dpdk-dev] [PATCH 2/2] build: establish an invariant machine type Christian Ehrhardt
@ 2018-11-14 11:39 ` Luca Boccassi
1 sibling, 0 replies; 17+ messages in thread
From: Luca Boccassi @ 2018-11-14 11:39 UTC (permalink / raw)
To: Christian Ehrhardt, dev
On Wed, 2018-11-14 at 12:34 +0100, Christian Ehrhardt wrote:
> So far only if machine was "native" it did use the re-direction to
> not set -march on ppc64 (where -march is not supported).
> We have to use mcpu/mtune in any case on ppc for whatever someone
> using
> the build system defines as machine.
>
> Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
> ---
> config/meson.build | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/config/meson.build b/config/meson.build
> index 0b710b795..1af305f46 100644
> --- a/config/meson.build
> +++ b/config/meson.build
> @@ -9,8 +9,9 @@ else
> endif
> dpdk_conf.set('RTE_MACHINE', machine)
> machine_args = []
> -# ppc64 does not support -march=native
> -if host_machine.cpu_family().startswith('ppc') and machine ==
> 'native'
> +
> +# ppc64 does not support -march= at all, use -mcpu and -mtune for
> that
> +if host_machine.cpu_family().startswith('ppc')
> machine_args += '-mcpu=' + machine
> machine_args += '-mtune=' + machine
> else
Acked-by: Luca Boccassi <bluca@debian.org>
--
Kind regards,
Luca Boccassi
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH 2/2] build: establish an invariant machine type
2018-11-14 11:34 ` [dpdk-dev] [PATCH 2/2] build: establish an invariant machine type Christian Ehrhardt
@ 2018-11-14 11:40 ` Luca Boccassi
2018-11-14 11:52 ` Bruce Richardson
2018-11-14 13:06 ` [dpdk-dev] [PATCH 2/2] build: establish an invariant machine type Luca Boccassi
1 sibling, 1 reply; 17+ messages in thread
From: Luca Boccassi @ 2018-11-14 11:40 UTC (permalink / raw)
To: Christian Ehrhardt, dev
On Wed, 2018-11-14 at 12:34 +0100, Christian Ehrhardt wrote:
> Add the machine definition 'baseline' which is special compared
> to 'native' (most optimized for current system) or any explicit
> type (external entity has to decide on the type).
>
> It defaults to the per arch agreed common minimal baseline
> needed for DPDK to reasonable work.
>
> That might not be the most optimized, but the most portable
> version while still being able to support the CPU features
> required for DPDK.
>
> Going forward this can be bumped up by the DPDK project, but it
> can never be an invariant like 'native'.
>
> Distributions and other needing portable code are expected to
> define the machine as 'baseline'.
>
> Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
> ---
> config/meson.build | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
> diff --git a/config/meson.build b/config/meson.build
> index 1af305f46..23f612457 100644
> --- a/config/meson.build
> +++ b/config/meson.build
> @@ -7,6 +7,27 @@ if meson.is_cross_build()
> else
> machine = get_option('machine')
> endif
> +
> +# machine type 'baseline' is special, it defaults to the per arch
> agreed common
> +# minimal baseline needed for DPDK.
> +# That might not be the most optimized, but the most portable
> version while
> +# still being able to support the CPU features required for DPDK.
> +# This can be bumped up by the DPDK project, but it can never be an
> +# invariant like 'native'
> +if machine == 'baseline'
> + if host_machine.cpu_family().startswith('x86')
> + # matches the old pre-meson build systems default
> + machine = 'corei7'
> + elif host_machine.cpu_family().startswith('arm')
> + machine = 'armv7a'
> + elif host_machine.cpu_family().startswith('aarch')
> + # arm64 manages defaults in config/arm/meson.build
> + machine = 'default'
> + elif host_machine.cpu_family().startswith('ppc')
> + machine = 'power8'
> + endif
> +endif
> +
> dpdk_conf.set('RTE_MACHINE', machine)
> machine_args = []
Acked-by: Luca Boccassi <bluca@debian.org>
--
Kind regards,
Luca Boccassi
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH 2/2] build: establish an invariant machine type
2018-11-14 11:40 ` Luca Boccassi
@ 2018-11-14 11:52 ` Bruce Richardson
2018-11-14 12:05 ` Luca Boccassi
0 siblings, 1 reply; 17+ messages in thread
From: Bruce Richardson @ 2018-11-14 11:52 UTC (permalink / raw)
To: Luca Boccassi; +Cc: Christian Ehrhardt, dev
On Wed, Nov 14, 2018 at 11:40:11AM +0000, Luca Boccassi wrote:
> On Wed, 2018-11-14 at 12:34 +0100, Christian Ehrhardt wrote:
> > Add the machine definition 'baseline' which is special compared
> > to 'native' (most optimized for current system) or any explicit
> > type (external entity has to decide on the type).
> >
> > It defaults to the per arch agreed common minimal baseline
> > needed for DPDK to reasonable work.
> >
> > That might not be the most optimized, but the most portable
> > version while still being able to support the CPU features
> > required for DPDK.
> >
> > Going forward this can be bumped up by the DPDK project, but it
> > can never be an invariant like 'native'.
> >
> > Distributions and other needing portable code are expected to
> > define the machine as 'baseline'.
> >
> > Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
> > ---
> > config/meson.build | 21 +++++++++++++++++++++
> > 1 file changed, 21 insertions(+)
> >
> > diff --git a/config/meson.build b/config/meson.build
> > index 1af305f46..23f612457 100644
> > --- a/config/meson.build
> > +++ b/config/meson.build
> > @@ -7,6 +7,27 @@ if meson.is_cross_build()
> > else
> > machine = get_option('machine')
> > endif
> > +
> > +# machine type 'baseline' is special, it defaults to the per arch
> > agreed common
> > +# minimal baseline needed for DPDK.
> > +# That might not be the most optimized, but the most portable
> > version while
> > +# still being able to support the CPU features required for DPDK.
> > +# This can be bumped up by the DPDK project, but it can never be an
> > +# invariant like 'native'
> > +if machine == 'baseline'
> > + if host_machine.cpu_family().startswith('x86')
> > + # matches the old pre-meson build systems default
> > + machine = 'corei7'
> > + elif host_machine.cpu_family().startswith('arm')
> > + machine = 'armv7a'
> > + elif host_machine.cpu_family().startswith('aarch')
> > + # arm64 manages defaults in config/arm/meson.build
> > + machine = 'default'
> > + elif host_machine.cpu_family().startswith('ppc')
> > + machine = 'power8'
> > + endif
> > +endif
> > +
> > dpdk_conf.set('RTE_MACHINE', machine)
> > machine_args = []
>
> Acked-by: Luca Boccassi <bluca@debian.org>
>
No objection in principle, but, for alignment with make build system, do we
want to call this "default" instead? Given a clean slate, "baseline" is more
descriptive, but make already uses "default" for this. Perhaps support
both?
/Bruce
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH 2/2] build: establish an invariant machine type
2018-11-14 11:52 ` Bruce Richardson
@ 2018-11-14 12:05 ` Luca Boccassi
2018-11-14 13:09 ` Christian Ehrhardt
0 siblings, 1 reply; 17+ messages in thread
From: Luca Boccassi @ 2018-11-14 12:05 UTC (permalink / raw)
To: Bruce Richardson; +Cc: Christian Ehrhardt, dev
On Wed, 2018-11-14 at 11:52 +0000, Bruce Richardson wrote:
> On Wed, Nov 14, 2018 at 11:40:11AM +0000, Luca Boccassi wrote:
> > On Wed, 2018-11-14 at 12:34 +0100, Christian Ehrhardt wrote:
> > > Add the machine definition 'baseline' which is special compared
> > > to 'native' (most optimized for current system) or any explicit
> > > type (external entity has to decide on the type).
> > >
> > > It defaults to the per arch agreed common minimal baseline
> > > needed for DPDK to reasonable work.
> > >
> > > That might not be the most optimized, but the most portable
> > > version while still being able to support the CPU features
> > > required for DPDK.
> > >
> > > Going forward this can be bumped up by the DPDK project, but it
> > > can never be an invariant like 'native'.
> > >
> > > Distributions and other needing portable code are expected to
> > > define the machine as 'baseline'.
> > >
> > > Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.c
> > > om>
> > > ---
> > > config/meson.build | 21 +++++++++++++++++++++
> > > 1 file changed, 21 insertions(+)
> > >
> > > diff --git a/config/meson.build b/config/meson.build
> > > index 1af305f46..23f612457 100644
> > > --- a/config/meson.build
> > > +++ b/config/meson.build
> > > @@ -7,6 +7,27 @@ if meson.is_cross_build()
> > > else
> > > machine = get_option('machine')
> > > endif
> > > +
> > > +# machine type 'baseline' is special, it defaults to the per
> > > arch
> > > agreed common
> > > +# minimal baseline needed for DPDK.
> > > +# That might not be the most optimized, but the most portable
> > > version while
> > > +# still being able to support the CPU features required for
> > > DPDK.
> > > +# This can be bumped up by the DPDK project, but it can never be
> > > an
> > > +# invariant like 'native'
> > > +if machine == 'baseline'
> > > + if host_machine.cpu_family().startswith('x86')
> > > + # matches the old pre-meson build systems
> > > default
> > > + machine = 'corei7'
> > > + elif host_machine.cpu_family().startswith('arm')
> > > + machine = 'armv7a'
> > > + elif host_machine.cpu_family().startswith('aarch')
> > > + # arm64 manages defaults in
> > > config/arm/meson.build
> > > + machine = 'default'
> > > + elif host_machine.cpu_family().startswith('ppc')
> > > + machine = 'power8'
> > > + endif
> > > +endif
> > > +
> > > dpdk_conf.set('RTE_MACHINE', machine)
> > > machine_args = []
> >
> > Acked-by: Luca Boccassi <bluca@debian.org>
> >
>
> No objection in principle, but, for alignment with make build system,
> do we
> want to call this "default" instead? Given a clean slate, "baseline"
> is more
> descriptive, but make already uses "default" for this. Perhaps
> support
> both?
>
> /Bruce
I'm fine with both - but if make already has default, it makes sense to
keep it consistent.
--
Kind regards,
Luca Boccassi
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH 2/2] build: establish an invariant machine type
2018-11-14 11:34 ` [dpdk-dev] [PATCH 2/2] build: establish an invariant machine type Christian Ehrhardt
2018-11-14 11:40 ` Luca Boccassi
@ 2018-11-14 13:06 ` Luca Boccassi
2018-11-14 13:08 ` Christian Ehrhardt
1 sibling, 1 reply; 17+ messages in thread
From: Luca Boccassi @ 2018-11-14 13:06 UTC (permalink / raw)
To: Christian Ehrhardt, dev
On Wed, 2018-11-14 at 12:34 +0100, Christian Ehrhardt wrote:
> Add the machine definition 'baseline' which is special compared
> to 'native' (most optimized for current system) or any explicit
> type (external entity has to decide on the type).
>
> It defaults to the per arch agreed common minimal baseline
> needed for DPDK to reasonable work.
>
> That might not be the most optimized, but the most portable
> version while still being able to support the CPU features
> required for DPDK.
>
> Going forward this can be bumped up by the DPDK project, but it
> can never be an invariant like 'native'.
>
> Distributions and other needing portable code are expected to
> define the machine as 'baseline'.
>
> Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
> ---
> config/meson.build | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
> diff --git a/config/meson.build b/config/meson.build
> index 1af305f46..23f612457 100644
> --- a/config/meson.build
> +++ b/config/meson.build
> @@ -7,6 +7,27 @@ if meson.is_cross_build()
> else
> machine = get_option('machine')
> endif
> +
> +# machine type 'baseline' is special, it defaults to the per arch
> agreed common
> +# minimal baseline needed for DPDK.
> +# That might not be the most optimized, but the most portable
> version while
> +# still being able to support the CPU features required for DPDK.
> +# This can be bumped up by the DPDK project, but it can never be an
> +# invariant like 'native'
> +if machine == 'baseline'
> + if host_machine.cpu_family().startswith('x86')
> + # matches the old pre-meson build systems default
> + machine = 'corei7'
> + elif host_machine.cpu_family().startswith('arm')
> + machine = 'armv7a'
gcc complains, it wants armv7-a instead (tried on a native armhf
machine, with the change the meson configure passes and ninja is now
_slowly_ building its way through)
> + elif host_machine.cpu_family().startswith('aarch')
> + # arm64 manages defaults in config/arm/meson.build
> + machine = 'default'
> + elif host_machine.cpu_family().startswith('ppc')
> + machine = 'power8'
> + endif
> +endif
> +
> dpdk_conf.set('RTE_MACHINE', machine)
> machine_args = []
>
--
Kind regards,
Luca Boccassi
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH 2/2] build: establish an invariant machine type
2018-11-14 13:06 ` [dpdk-dev] [PATCH 2/2] build: establish an invariant machine type Luca Boccassi
@ 2018-11-14 13:08 ` Christian Ehrhardt
0 siblings, 0 replies; 17+ messages in thread
From: Christian Ehrhardt @ 2018-11-14 13:08 UTC (permalink / raw)
To: Luca Boccassi; +Cc: dev
On Wed, Nov 14, 2018 at 2:06 PM Luca Boccassi <bluca@debian.org> wrote:
>
> On Wed, 2018-11-14 at 12:34 +0100, Christian Ehrhardt wrote:
> > Add the machine definition 'baseline' which is special compared
> > to 'native' (most optimized for current system) or any explicit
> > type (external entity has to decide on the type).
> >
> > It defaults to the per arch agreed common minimal baseline
> > needed for DPDK to reasonable work.
> >
> > That might not be the most optimized, but the most portable
> > version while still being able to support the CPU features
> > required for DPDK.
> >
> > Going forward this can be bumped up by the DPDK project, but it
> > can never be an invariant like 'native'.
> >
> > Distributions and other needing portable code are expected to
> > define the machine as 'baseline'.
> >
> > Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
> > ---
> > config/meson.build | 21 +++++++++++++++++++++
> > 1 file changed, 21 insertions(+)
> >
> > diff --git a/config/meson.build b/config/meson.build
> > index 1af305f46..23f612457 100644
> > --- a/config/meson.build
> > +++ b/config/meson.build
> > @@ -7,6 +7,27 @@ if meson.is_cross_build()
> > else
> > machine = get_option('machine')
> > endif
> > +
> > +# machine type 'baseline' is special, it defaults to the per arch
> > agreed common
> > +# minimal baseline needed for DPDK.
> > +# That might not be the most optimized, but the most portable
> > version while
> > +# still being able to support the CPU features required for DPDK.
> > +# This can be bumped up by the DPDK project, but it can never be an
> > +# invariant like 'native'
> > +if machine == 'baseline'
> > + if host_machine.cpu_family().startswith('x86')
> > + # matches the old pre-meson build systems default
> > + machine = 'corei7'
> > + elif host_machine.cpu_family().startswith('arm')
> > + machine = 'armv7a'
>
> gcc complains, it wants armv7-a instead (tried on a native armhf
> machine, with the change the meson configure passes and ninja is now
> _slowly_ building its way through)
Thanks will update that in a v2
>
> > + elif host_machine.cpu_family().startswith('aarch')
> > + # arm64 manages defaults in config/arm/meson.build
> > + machine = 'default'
> > + elif host_machine.cpu_family().startswith('ppc')
> > + machine = 'power8'
> > + endif
> > +endif
> > +
> > dpdk_conf.set('RTE_MACHINE', machine)
> > machine_args = []
> >
>
> --
> Kind regards,
> Luca Boccassi
--
Christian Ehrhardt
Software Engineer, Ubuntu Server
Canonical Ltd
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH 2/2] build: establish an invariant machine type
2018-11-14 12:05 ` Luca Boccassi
@ 2018-11-14 13:09 ` Christian Ehrhardt
2018-11-14 13:18 ` [dpdk-dev] [PATCH] " Christian Ehrhardt
0 siblings, 1 reply; 17+ messages in thread
From: Christian Ehrhardt @ 2018-11-14 13:09 UTC (permalink / raw)
To: Luca Boccassi; +Cc: Bruce Richardson, dev
On Wed, Nov 14, 2018 at 1:05 PM Luca Boccassi <bluca@debian.org> wrote:
>
> On Wed, 2018-11-14 at 11:52 +0000, Bruce Richardson wrote:
> > On Wed, Nov 14, 2018 at 11:40:11AM +0000, Luca Boccassi wrote:
> > > On Wed, 2018-11-14 at 12:34 +0100, Christian Ehrhardt wrote:
> > > > Add the machine definition 'baseline' which is special compared
> > > > to 'native' (most optimized for current system) or any explicit
> > > > type (external entity has to decide on the type).
> > > >
> > > > It defaults to the per arch agreed common minimal baseline
> > > > needed for DPDK to reasonable work.
> > > >
> > > > That might not be the most optimized, but the most portable
> > > > version while still being able to support the CPU features
> > > > required for DPDK.
> > > >
> > > > Going forward this can be bumped up by the DPDK project, but it
> > > > can never be an invariant like 'native'.
> > > >
> > > > Distributions and other needing portable code are expected to
> > > > define the machine as 'baseline'.
> > > >
> > > > Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.c
> > > > om>
> > > > ---
> > > > config/meson.build | 21 +++++++++++++++++++++
> > > > 1 file changed, 21 insertions(+)
> > > >
> > > > diff --git a/config/meson.build b/config/meson.build
> > > > index 1af305f46..23f612457 100644
> > > > --- a/config/meson.build
> > > > +++ b/config/meson.build
> > > > @@ -7,6 +7,27 @@ if meson.is_cross_build()
> > > > else
> > > > machine = get_option('machine')
> > > > endif
> > > > +
> > > > +# machine type 'baseline' is special, it defaults to the per
> > > > arch
> > > > agreed common
> > > > +# minimal baseline needed for DPDK.
> > > > +# That might not be the most optimized, but the most portable
> > > > version while
> > > > +# still being able to support the CPU features required for
> > > > DPDK.
> > > > +# This can be bumped up by the DPDK project, but it can never be
> > > > an
> > > > +# invariant like 'native'
> > > > +if machine == 'baseline'
> > > > + if host_machine.cpu_family().startswith('x86')
> > > > + # matches the old pre-meson build systems
> > > > default
> > > > + machine = 'corei7'
> > > > + elif host_machine.cpu_family().startswith('arm')
> > > > + machine = 'armv7a'
> > > > + elif host_machine.cpu_family().startswith('aarch')
> > > > + # arm64 manages defaults in
> > > > config/arm/meson.build
> > > > + machine = 'default'
> > > > + elif host_machine.cpu_family().startswith('ppc')
> > > > + machine = 'power8'
> > > > + endif
> > > > +endif
> > > > +
> > > > dpdk_conf.set('RTE_MACHINE', machine)
> > > > machine_args = []
> > >
> > > Acked-by: Luca Boccassi <bluca@debian.org>
> > >
> >
> > No objection in principle, but, for alignment with make build system,
> > do we
> > want to call this "default" instead? Given a clean slate, "baseline"
> > is more
> > descriptive, but make already uses "default" for this. Perhaps
> > support
> > both?
> >
> > /Bruce
>
> I'm fine with both - but if make already has default, it makes sense to
> keep it consistent.
Yeah I agree for consistency, I just need to check for a v2 if none of
them will misuse default to become native again
> --
> Kind regards,
> Luca Boccassi
--
Christian Ehrhardt
Software Engineer, Ubuntu Server
Canonical Ltd
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH] build: establish an invariant machine type
2018-11-14 13:09 ` Christian Ehrhardt
@ 2018-11-14 13:18 ` Christian Ehrhardt
2018-11-14 13:54 ` Bruce Richardson
0 siblings, 1 reply; 17+ messages in thread
From: Christian Ehrhardt @ 2018-11-14 13:18 UTC (permalink / raw)
To: Luca Boccassi, dev, Bruce Richardson; +Cc: Christian Ehrhardt
Add the machine definition 'default' which is special compared
to 'native' (most optimized for current system) or any explicit
type (external entity has to decide on the type).
It defaults to the per arch agreed common minimal baseline
needed for DPDK to reasonable work.
That might not be the most optimized, but the most portable
version while still being able to support the CPU features
required for DPDK.
Going forward this can be bumped up by the DPDK project, but it
can never be an invariant like 'native'.
Distributions and other needing portable code are expected to
define the machine as 'baseline'.
Changes in v2:
- fixed the non 64 bit arm default type
- changed baseline to default to match the old build system
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
---
config/meson.build | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/config/meson.build b/config/meson.build
index 1af305f46..db32499b3 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -7,6 +7,27 @@ if meson.is_cross_build()
else
machine = get_option('machine')
endif
+
+# machine type 'default' is special, it defaults to the per arch agreed common
+# minimal baseline needed for DPDK.
+# That might not be the most optimized, but the most portable version while
+# still being able to support the CPU features required for DPDK.
+# This can be bumped up by the DPDK project, but it can never be an
+# invariant like 'native'
+if machine == 'default'
+ if host_machine.cpu_family().startswith('x86')
+ # matches the old pre-meson build systems default
+ machine = 'corei7'
+ elif host_machine.cpu_family().startswith('arm')
+ machine = 'armv7-a'
+ elif host_machine.cpu_family().startswith('aarch')
+ # arm64 manages defaults in config/arm/meson.build
+ machine = 'default'
+ elif host_machine.cpu_family().startswith('ppc')
+ machine = 'power8'
+ endif
+endif
+
dpdk_conf.set('RTE_MACHINE', machine)
machine_args = []
--
2.17.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH] build: establish an invariant machine type
2018-11-14 13:18 ` [dpdk-dev] [PATCH] " Christian Ehrhardt
@ 2018-11-14 13:54 ` Bruce Richardson
2018-11-14 14:33 ` [dpdk-dev] [PATCH v3] " Christian Ehrhardt
0 siblings, 1 reply; 17+ messages in thread
From: Bruce Richardson @ 2018-11-14 13:54 UTC (permalink / raw)
To: Christian Ehrhardt; +Cc: Luca Boccassi, dev
On Wed, Nov 14, 2018 at 02:18:38PM +0100, Christian Ehrhardt wrote:
> Add the machine definition 'default' which is special compared
> to 'native' (most optimized for current system) or any explicit
> type (external entity has to decide on the type).
>
> It defaults to the per arch agreed common minimal baseline
> needed for DPDK to reasonable work.
>
> That might not be the most optimized, but the most portable
> version while still being able to support the CPU features
> required for DPDK.
>
> Going forward this can be bumped up by the DPDK project, but it
> can never be an invariant like 'native'.
>
> Distributions and other needing portable code are expected to
> define the machine as 'baseline'.
>
Need to change 'baseline' to 'default' here.
> Changes in v2:
> - fixed the non 64 bit arm default type
> - changed baseline to default to match the old build system
>
> Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH v3] build: establish an invariant machine type
2018-11-14 13:54 ` Bruce Richardson
@ 2018-11-14 14:33 ` Christian Ehrhardt
2018-11-14 19:39 ` Christian Ehrhardt
2018-11-14 19:40 ` [dpdk-dev] [PATCH v4 1/2] build: avoid non supported -march on ppc (meson) Christian Ehrhardt
0 siblings, 2 replies; 17+ messages in thread
From: Christian Ehrhardt @ 2018-11-14 14:33 UTC (permalink / raw)
To: Luca Boccassi, dev, Bruce Richardson; +Cc: Christian Ehrhardt
Add the machine definition 'default' which is special compared
to 'native' (most optimized for current system) or any explicit
type (external entity has to decide on the type).
It defaults to the per arch agreed common minimal baseline
needed for DPDK to reasonable work.
That might not be the most optimized, but the most portable
version while still being able to support the CPU features
required for DPDK.
Going forward this can be bumped up by the DPDK project, but it
can never be an invariant like 'native'.
Distributions and other needing portable code are expected to
define the machine as 'default'.
Changes in v2:
- fixed the non 64 bit arm default type
- changed baseline to default to match the old build system
Changes in v3:
- add acked-by's
- removed old wording from commit message
- adding Fixes line per request by Luca Boccassi
Fixes: 54d609a13876 ("build: add ppc64 meson build")
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
---
config/meson.build | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/config/meson.build b/config/meson.build
index 1af305f46..db32499b3 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -7,6 +7,27 @@ if meson.is_cross_build()
else
machine = get_option('machine')
endif
+
+# machine type 'default' is special, it defaults to the per arch agreed common
+# minimal baseline needed for DPDK.
+# That might not be the most optimized, but the most portable version while
+# still being able to support the CPU features required for DPDK.
+# This can be bumped up by the DPDK project, but it can never be an
+# invariant like 'native'
+if machine == 'default'
+ if host_machine.cpu_family().startswith('x86')
+ # matches the old pre-meson build systems default
+ machine = 'corei7'
+ elif host_machine.cpu_family().startswith('arm')
+ machine = 'armv7-a'
+ elif host_machine.cpu_family().startswith('aarch')
+ # arm64 manages defaults in config/arm/meson.build
+ machine = 'default'
+ elif host_machine.cpu_family().startswith('ppc')
+ machine = 'power8'
+ endif
+endif
+
dpdk_conf.set('RTE_MACHINE', machine)
machine_args = []
--
2.17.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH v3] build: establish an invariant machine type
2018-11-14 14:33 ` [dpdk-dev] [PATCH v3] " Christian Ehrhardt
@ 2018-11-14 19:39 ` Christian Ehrhardt
2018-11-18 13:24 ` Thomas Monjalon
2018-11-14 19:40 ` [dpdk-dev] [PATCH v4 1/2] build: avoid non supported -march on ppc (meson) Christian Ehrhardt
1 sibling, 1 reply; 17+ messages in thread
From: Christian Ehrhardt @ 2018-11-14 19:39 UTC (permalink / raw)
To: Luca Boccassi, dev, Bruce Richardson
On Wed, Nov 14, 2018 at 3:33 PM Christian Ehrhardt
<christian.ehrhardt@canonical.com> wrote:
>
> Add the machine definition 'default' which is special compared
> to 'native' (most optimized for current system) or any explicit
> type (external entity has to decide on the type).
>
> It defaults to the per arch agreed common minimal baseline
> needed for DPDK to reasonable work.
>
> That might not be the most optimized, but the most portable
> version while still being able to support the CPU features
> required for DPDK.
>
> Going forward this can be bumped up by the DPDK project, but it
> can never be an invariant like 'native'.
>
> Distributions and other needing portable code are expected to
> define the machine as 'default'.
>
> Changes in v2:
> - fixed the non 64 bit arm default type
> - changed baseline to default to match the old build system
>
> Changes in v3:
> - add acked-by's
> - removed old wording from commit message
> - adding Fixes line per request by Luca Boccassi
FYI: I'll drop the version update from the commit (I didn't have a
cover letter to add them instead).
Also I'll add the Acked-by of Luca to the other patch as well and move
the Fixes line as it was meant for the 1/2 of these.
Overall I think v4 will then be fine, all acks in place and hopefully
making it in before -rc4 is defined to fix more peoples builds.
Replying to this mail with both updated patches soon, let me know if
anything else is holding these back from being accepted.
> Fixes: 54d609a13876 ("build: add ppc64 meson build")
>
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> Acked-by: Luca Boccassi <bluca@debian.org>
> Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
> ---
> config/meson.build | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
> diff --git a/config/meson.build b/config/meson.build
> index 1af305f46..db32499b3 100644
> --- a/config/meson.build
> +++ b/config/meson.build
> @@ -7,6 +7,27 @@ if meson.is_cross_build()
> else
> machine = get_option('machine')
> endif
> +
> +# machine type 'default' is special, it defaults to the per arch agreed common
> +# minimal baseline needed for DPDK.
> +# That might not be the most optimized, but the most portable version while
> +# still being able to support the CPU features required for DPDK.
> +# This can be bumped up by the DPDK project, but it can never be an
> +# invariant like 'native'
> +if machine == 'default'
> + if host_machine.cpu_family().startswith('x86')
> + # matches the old pre-meson build systems default
> + machine = 'corei7'
> + elif host_machine.cpu_family().startswith('arm')
> + machine = 'armv7-a'
> + elif host_machine.cpu_family().startswith('aarch')
> + # arm64 manages defaults in config/arm/meson.build
> + machine = 'default'
> + elif host_machine.cpu_family().startswith('ppc')
> + machine = 'power8'
> + endif
> +endif
> +
> dpdk_conf.set('RTE_MACHINE', machine)
> machine_args = []
>
> --
> 2.17.1
>
--
Christian Ehrhardt
Software Engineer, Ubuntu Server
Canonical Ltd
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH v4 1/2] build: avoid non supported -march on ppc (meson)
2018-11-14 14:33 ` [dpdk-dev] [PATCH v3] " Christian Ehrhardt
2018-11-14 19:39 ` Christian Ehrhardt
@ 2018-11-14 19:40 ` Christian Ehrhardt
2018-11-14 19:40 ` [dpdk-dev] [PATCH v4 2/2] build: establish an invariant machine type Christian Ehrhardt
2018-11-18 14:24 ` [dpdk-dev] [PATCH v4 1/2] build: avoid non supported -march on ppc (meson) Thomas Monjalon
1 sibling, 2 replies; 17+ messages in thread
From: Christian Ehrhardt @ 2018-11-14 19:40 UTC (permalink / raw)
To: Luca Boccassi, dev, Bruce Richardson; +Cc: Christian Ehrhardt
So far only if machine was "native" it did use the re-direction to
not set -march on ppc64 (where -march is not supported).
We have to use mcpu/mtune in any case on ppc for whatever someone using
the build system defines as machine.
Fixes: 54d609a13876 ("build: add ppc64 meson build")
Acked-by: Luca Boccassi <bluca@debian.org>
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
---
config/meson.build | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/config/meson.build b/config/meson.build
index 0b710b795..1af305f46 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -9,8 +9,9 @@ else
endif
dpdk_conf.set('RTE_MACHINE', machine)
machine_args = []
-# ppc64 does not support -march=native
-if host_machine.cpu_family().startswith('ppc') and machine == 'native'
+
+# ppc64 does not support -march= at all, use -mcpu and -mtune for that
+if host_machine.cpu_family().startswith('ppc')
machine_args += '-mcpu=' + machine
machine_args += '-mtune=' + machine
else
--
2.17.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH v4 2/2] build: establish an invariant machine type
2018-11-14 19:40 ` [dpdk-dev] [PATCH v4 1/2] build: avoid non supported -march on ppc (meson) Christian Ehrhardt
@ 2018-11-14 19:40 ` Christian Ehrhardt
2018-11-18 14:24 ` [dpdk-dev] [PATCH v4 1/2] build: avoid non supported -march on ppc (meson) Thomas Monjalon
1 sibling, 0 replies; 17+ messages in thread
From: Christian Ehrhardt @ 2018-11-14 19:40 UTC (permalink / raw)
To: Luca Boccassi, dev, Bruce Richardson; +Cc: Christian Ehrhardt
Add the machine definition 'default' which is special compared
to 'native' (most optimized for current system) or any explicit
type (external entity has to decide on the type).
It defaults to the per arch agreed common minimal baseline
needed for DPDK to reasonable work.
That might not be the most optimized, but the most portable
version while still being able to support the CPU features
required for DPDK.
Going forward this can be bumped up by the DPDK project, but it
can never be an invariant like 'native'.
Distributions and other needing portable code are expected to
define the machine as 'default'.
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
---
config/meson.build | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/config/meson.build b/config/meson.build
index 1af305f46..db32499b3 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -7,6 +7,27 @@ if meson.is_cross_build()
else
machine = get_option('machine')
endif
+
+# machine type 'default' is special, it defaults to the per arch agreed common
+# minimal baseline needed for DPDK.
+# That might not be the most optimized, but the most portable version while
+# still being able to support the CPU features required for DPDK.
+# This can be bumped up by the DPDK project, but it can never be an
+# invariant like 'native'
+if machine == 'default'
+ if host_machine.cpu_family().startswith('x86')
+ # matches the old pre-meson build systems default
+ machine = 'corei7'
+ elif host_machine.cpu_family().startswith('arm')
+ machine = 'armv7-a'
+ elif host_machine.cpu_family().startswith('aarch')
+ # arm64 manages defaults in config/arm/meson.build
+ machine = 'default'
+ elif host_machine.cpu_family().startswith('ppc')
+ machine = 'power8'
+ endif
+endif
+
dpdk_conf.set('RTE_MACHINE', machine)
machine_args = []
--
2.17.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH v3] build: establish an invariant machine type
2018-11-14 19:39 ` Christian Ehrhardt
@ 2018-11-18 13:24 ` Thomas Monjalon
0 siblings, 0 replies; 17+ messages in thread
From: Thomas Monjalon @ 2018-11-18 13:24 UTC (permalink / raw)
To: Christian Ehrhardt; +Cc: dev, Luca Boccassi, Bruce Richardson
14/11/2018 20:39, Christian Ehrhardt:
> On Wed, Nov 14, 2018 at 3:33 PM Christian Ehrhardt
> <christian.ehrhardt@canonical.com> wrote:
> >
> > Add the machine definition 'default' which is special compared
> > to 'native' (most optimized for current system) or any explicit
> > type (external entity has to decide on the type).
> >
> > It defaults to the per arch agreed common minimal baseline
> > needed for DPDK to reasonable work.
> >
> > That might not be the most optimized, but the most portable
> > version while still being able to support the CPU features
> > required for DPDK.
> >
> > Going forward this can be bumped up by the DPDK project, but it
> > can never be an invariant like 'native'.
> >
> > Distributions and other needing portable code are expected to
> > define the machine as 'default'.
> >
> > Changes in v2:
> > - fixed the non 64 bit arm default type
> > - changed baseline to default to match the old build system
> >
> > Changes in v3:
> > - add acked-by's
> > - removed old wording from commit message
> > - adding Fixes line per request by Luca Boccassi
>
> FYI: I'll drop the version update from the commit (I didn't have a
> cover letter to add them instead).
You don't need a cover letter for changelogs.
You can insert it after ---
Usually, I insert changelogs between two --- lines.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH v4 1/2] build: avoid non supported -march on ppc (meson)
2018-11-14 19:40 ` [dpdk-dev] [PATCH v4 1/2] build: avoid non supported -march on ppc (meson) Christian Ehrhardt
2018-11-14 19:40 ` [dpdk-dev] [PATCH v4 2/2] build: establish an invariant machine type Christian Ehrhardt
@ 2018-11-18 14:24 ` Thomas Monjalon
1 sibling, 0 replies; 17+ messages in thread
From: Thomas Monjalon @ 2018-11-18 14:24 UTC (permalink / raw)
To: Christian Ehrhardt; +Cc: dev, Luca Boccassi, Bruce Richardson
14/11/2018 20:40, Christian Ehrhardt:
> So far only if machine was "native" it did use the re-direction to
> not set -march on ppc64 (where -march is not supported).
> We have to use mcpu/mtune in any case on ppc for whatever someone using
> the build system defines as machine.
>
> Fixes: 54d609a13876 ("build: add ppc64 meson build")
>
> Acked-by: Luca Boccassi <bluca@debian.org>
> Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Series applied, thanks
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2018-11-18 14:24 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-14 11:34 [dpdk-dev] [PATCH 1/2] build: avoid non supported -march on ppc (meson) Christian Ehrhardt
2018-11-14 11:34 ` [dpdk-dev] [PATCH 2/2] build: establish an invariant machine type Christian Ehrhardt
2018-11-14 11:40 ` Luca Boccassi
2018-11-14 11:52 ` Bruce Richardson
2018-11-14 12:05 ` Luca Boccassi
2018-11-14 13:09 ` Christian Ehrhardt
2018-11-14 13:18 ` [dpdk-dev] [PATCH] " Christian Ehrhardt
2018-11-14 13:54 ` Bruce Richardson
2018-11-14 14:33 ` [dpdk-dev] [PATCH v3] " Christian Ehrhardt
2018-11-14 19:39 ` Christian Ehrhardt
2018-11-18 13:24 ` Thomas Monjalon
2018-11-14 19:40 ` [dpdk-dev] [PATCH v4 1/2] build: avoid non supported -march on ppc (meson) Christian Ehrhardt
2018-11-14 19:40 ` [dpdk-dev] [PATCH v4 2/2] build: establish an invariant machine type Christian Ehrhardt
2018-11-18 14:24 ` [dpdk-dev] [PATCH v4 1/2] build: avoid non supported -march on ppc (meson) Thomas Monjalon
2018-11-14 13:06 ` [dpdk-dev] [PATCH 2/2] build: establish an invariant machine type Luca Boccassi
2018-11-14 13:08 ` Christian Ehrhardt
2018-11-14 11:39 ` [dpdk-dev] [PATCH 1/2] build: avoid non supported -march on ppc (meson) Luca Boccassi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).