DPDK patches and discussions
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: Stephen Hemminger <stephen@networkplumber.org>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [RFC PATCH] replace DPDK config and build system
Date: Thu, 8 Jun 2017 09:59:01 +0100	[thread overview]
Message-ID: <20170608085901.GC58216@bricha3-MOBL3.ger.corp.intel.com> (raw)
In-Reply-To: <20170607162617.00d009ff@xeon-e3>

On Wed, Jun 07, 2017 at 04:26:17PM -0700, Stephen Hemminger wrote:
> On Wed,  7 Jun 2017 11:47:42 +0100
> Bruce Richardson <bruce.richardson@intel.com> wrote:
> 
> > The prototype is incomplete, but it does build a reasonable number of our
> > libraries, some unit tests, the i40e PMD and the testpmd binary, and I have
> > successfully passed traffic using testpmd from the build. Some things are
> > not fully correct, e.g. static builds aren't working right now, as I haven't
> > correctly done all the dependency tracking, I think, and the cpu flag
> > detection has issues. It also has only been tried on x86_64 linux, on a
> > couple of systems, so YMMV. However, I feel it's a reasonable enough start
> > point to show what we might be able to achieve.
> 
> Remember that in many cases the build system and the target system are different.
> One of the problems with previous DPDK builds where build system was on bare metal
> but deployment target was on a more limited VM environment. I sweated through
> lots of  pain on that.

Yep, and I'm not going to claim that this is going to solve world hunger
here :-) or that switching is going to be easy. However, talking of
building and deploying on different targets, meson is designed to allow
cross-compilation, see for example the built-in objects for
"build_machine", "host_machine" and "target_machine":
http://mesonbuild.com/Reference-manual.html#build_machine-object

Also, one thing I did add into this prototype was some build argument
support to test how that would work. By default, when you run meson, it
will set up the cflags to pass in -march=native, much as is done by our
default targets now. However, this is easily changed when doing your own
builds, for example, to do two different builds in different directories:

$ meson native_build
...
Checking for value of define "__PCLMUL__": 1
Checking for value of define "__AVX__": 1
Checking for value of define "__AVX2__": 1
...

$ meson -Dmachine=ivybridge ivybridge_build
...
Checking for value of define "__PCLMUL__": 1
Checking for value of define "__AVX__": 1
Checking for value of define "__AVX2__":
...

This way you can easily set up different builds for different machine
targets, with different instruction set levels, as seen from where the
second case above did not report AVX2 support. The project-specific
options are given in meson_options.txt. See also relevant section in
meson docs: http://mesonbuild.com/Build-options.html

Regards,
/Bruce

  reply	other threads:[~2017-06-08  8:59 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-07 10:47 Bruce Richardson
2017-06-07 10:47 ` [dpdk-dev] [RFC PATCH] build for DPDK with meson and ninja Bruce Richardson
     [not found]   ` <CGME20170607143643eucas1p10bce80dca22034efc6402d5944a6a0ed@eucas1p1.samsung.com>
2017-06-07 14:36     ` [dpdk-dev] [dpdk-dev,RFC] " Ilya Maximets
2017-06-07 14:51       ` Bruce Richardson
2017-06-07 18:12   ` [dpdk-dev] [RFC PATCH] " Jerin Jacob
2017-06-08  8:43     ` Bruce Richardson
2017-06-08  7:20   ` Shreyansh Jain
2017-06-08  8:48     ` Bruce Richardson
2017-06-07 13:08 ` [dpdk-dev] [RFC PATCH] replace DPDK config and build system Van Haaren, Harry
     [not found]   ` <1496841784.25214.6.camel@gmail.com>
2017-06-07 13:27     ` Bruce Richardson
2017-06-07 23:26 ` Stephen Hemminger
2017-06-08  8:59   ` Bruce Richardson [this message]
2017-06-08 16:26     ` Stephen Hemminger
2017-06-08 18:07       ` Christian Ehrhardt
2017-06-08 18:21         ` Wiles, Keith
2017-06-09  9:05         ` Bruce Richardson
2017-06-09 18:06           ` Wiles, Keith
2017-06-20 13:34             ` Morten Brørup
2017-06-20 13:41               ` Bruce Richardson
2017-06-20 14:25                 ` Morten Brørup
2017-06-20 14:43                   ` Bruce Richardson
2017-06-22 17:14 ` Neil Horman
2017-06-22 20:27   ` Bruce Richardson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170608085901.GC58216@bricha3-MOBL3.ger.corp.intel.com \
    --to=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=stephen@networkplumber.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).