All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: David Marchand <david.marchand@redhat.com>,
	Kevin Laatz <kevin.laatz@intel.com>
Cc: dev <dev@dpdk.org>, Bruce Richardson <bruce.richardson@intel.com>,
	"Kinsella, Ray" <ray.kinsella@intel.com>,
	Tomasz Duszynski <tdu@semihalf.com>, Zyta Szpak <zr@semihalf.com>,
	Rastislav Cernay <cernay@netcope.com>,
	Aaron Conole <aconole@redhat.com>
Subject: Re: [dpdk-dev] [PATCH v6 00/11] Add ABI compatibility checks to the meson build
Date: Fri, 20 Dec 2019 11:20:44 +0100	[thread overview]
Message-ID: <1954775.STNsi1xJb4@xps> (raw)
In-Reply-To: <CAJFAV8xJaQoTYh9Q2rWkEcRU1fS0bLW=m-4SMmYptK0RDk_g8A@mail.gmail.com>

19/12/2019 22:58, David Marchand:
> On Fri, Dec 13, 2019 at 5:41 PM Kevin Laatz <kevin.laatz@intel.com> wrote:
> > The proposed solution works as follows:
> > 1. Generate the ABI dump of the baseline. This can be done with the new
> >    script added in this set. This step will only need to be done when the
> >    ABI version changes (so once a year) and can be added to master so it
> >    exists by default. This step can be skipped if the dump files for the
> >    baseline already exist.
> > 2. Build with meson. If there is an ABI incompatibility, the build will
> >    fail and print the incompatibility information.
[...]
> - I asked for the dump files, but I can see that it is impractical.
> 
> The dump files are huge. I did not expect that :-).
> The dump files are architecture specific and maintaining multi arch
> dumps would be even bigger than just what you sent for x86_64.
> (not even considering the changes in ABI if some configuration items
> have an impact...).

I agree that dump files are better managed outside of git.


> As you pointed out, people who don't have all dependencies won't
> create/update those dump files.
> Dealing with ABI updates (thinking of bumping the ABI version) is
> likely a maintainer job, but it will be a source of issues and we
> (maintainers) might miss some updates especially for drivers we can't
> build.
> 
> 
> - Why do we restrict the checks to meson?
> The make build framework is going to disappear ok, but we can't leave
> it untested.
> People still rely on it.
> 
> Checking the ABI is orthogonal to building DPDK.
> Dumping the ABI and checking it against objects can be done externally.

I agree we should not rely on meson for running the check.


> - For those reasons, I have been trying an alternate approach [1]: in
> Travis, generate a reference dump based on the first ancestor tag,
> then build the proposed patches.
> All contributions get picked up by Aaron robot and would have to pass
> through this check.
> 
> As an exercise, I tried to integrate Eelco patch [2], that moves
> symbols from EXPERIMENTAL to a stable ABI. The check passes fine.
> I also tried to bump the ABI major version. The check fails, as
> expected, but I prepared a way to bypass such failures for the
> releases where we will explicitely break ABI.
> 
> For maintainers that integrate patches or developers that get a CI
> failure and want to fix it, we would need to help them to:
> * generate dumps on a reference version, so I would tend to write some
> documentation since playing with the current sources would be too
> dangerous from my pov,
> * run the checks, like adding the check in the
> devtools/test-*-build.sh scripts that already exist, with a new
> configuration item to point at the dumps per target,

We can start with a documented process,
and write a separate script later if we feel it helps.


> Those last two points are still to be done.
> 
> WDYT?
> 
> 
> 1: https://github.com/david-marchand/dpdk/commit/f18de2ec157f3cc1e7b319cb19700e1b5e9cecde
> 2: https://patchwork.dpdk.org/patch/63970/


Thanks to both of you trying some approaches and making progress.



  reply	other threads:[~2019-12-20 10:20 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-23  1:07 [dpdk-dev] [RFC 0/6] Add ABI compatibility checks to the meson build Kevin Laatz
2019-10-23  1:07 ` [dpdk-dev] [RFC 1/6] build: enable debug info by default in meson builds Kevin Laatz
2019-10-23  1:07 ` [dpdk-dev] [RFC 2/6] build: use meson warning levels Kevin Laatz
2019-10-23  1:07 ` [dpdk-dev] [RFC 3/6] devtools: add abi dump generation script Kevin Laatz
2019-10-23  1:07 ` [dpdk-dev] [RFC 4/6] build: add meson option for abi related checks Kevin Laatz
2019-10-23  1:07 ` [dpdk-dev] [RFC 5/6] build: add lib abi checks to meson Kevin Laatz
2019-10-23  1:07 ` [dpdk-dev] [RFC 6/6] build: add drivers " Kevin Laatz
2019-11-29 12:13 ` [dpdk-dev] [RFC 0/6] Add ABI compatibility checks to the meson build David Marchand
2019-11-29 17:10 ` [dpdk-dev] [PATCH v2 0/7] " Kevin Laatz
2019-11-29 17:10   ` [dpdk-dev] [PATCH v2 1/7] build: enable debug info by default in meson builds Kevin Laatz
2019-11-29 17:10   ` [dpdk-dev] [PATCH v2 2/7] build: use meson warning levels Kevin Laatz
2019-11-29 17:10   ` [dpdk-dev] [PATCH v2 3/7] devtools: add abi dump generation script Kevin Laatz
2019-11-29 17:10   ` [dpdk-dev] [PATCH v2 4/7] build: add meson option for abi related checks Kevin Laatz
2019-11-29 17:10   ` [dpdk-dev] [PATCH v2 5/7] build: add lib abi checks to meson Kevin Laatz
2019-11-29 17:10   ` [dpdk-dev] [PATCH v2 6/7] build: add drivers " Kevin Laatz
2019-11-29 17:10   ` [dpdk-dev] [PATCH v2 7/7] build: clean up experimental syms check Kevin Laatz
2019-11-29 21:08   ` [dpdk-dev] [PATCH v3 0/7] Add ABI compatibility checks to the meson build Kevin Laatz
2019-11-29 21:08     ` [dpdk-dev] [PATCH v3 1/7] build: enable debug info by default in meson builds Kevin Laatz
2019-11-29 21:09     ` [dpdk-dev] [PATCH v3 2/7] build: use meson warning levels Kevin Laatz
2019-11-29 21:09     ` [dpdk-dev] [PATCH v3 3/7] devtools: add abi dump generation script Kevin Laatz
2019-11-29 21:09     ` [dpdk-dev] [PATCH v3 4/7] build: add meson option for abi related checks Kevin Laatz
2019-11-29 21:09     ` [dpdk-dev] [PATCH v3 5/7] build: add lib abi checks to meson Kevin Laatz
2019-11-29 21:09     ` [dpdk-dev] [PATCH v3 6/7] build: add drivers " Kevin Laatz
2019-11-29 21:09     ` [dpdk-dev] [PATCH v3 7/7] build: clean up experimental syms check Kevin Laatz
2019-12-03 11:03     ` [dpdk-dev] [PATCH v3 0/7] Add ABI compatibility checks to the meson build David Marchand
2019-12-03 15:27       ` Laatz, Kevin
2019-12-04  8:47         ` David Marchand
2019-12-04 10:46           ` Bruce Richardson
2019-12-04 11:56           ` Neil Horman
2019-12-04 12:00             ` David Marchand
2019-12-10 11:07         ` David Marchand
2019-12-10 11:36           ` Laatz, Kevin
2019-12-11 18:21     ` [dpdk-dev] [PATCH v4 0/3] " Kevin Laatz
2019-12-11 18:21       ` [dpdk-dev] [PATCH v4 2/3] build: add abi checks to meson Kevin Laatz
2019-12-11 18:21       ` [dpdk-dev] [PATCH v4 3/3] build: clean up experimental syms check Kevin Laatz
     [not found]       ` <20191211182147.19355-2-kevin.laatz@intel.com>
2019-12-12  8:43         ` [dpdk-dev] [PATCH v4 1/3] build: add dump files for v20.0 ABI David Marchand
2019-12-12  9:36           ` David Marchand
2019-12-12  9:45             ` Laatz, Kevin
2019-12-12  9:45           ` Laatz, Kevin
2019-12-13 14:02       ` [dpdk-dev] [PATCH v5 0/3] Add ABI compatibility checks to the meson build Kevin Laatz
2019-12-13 14:03         ` [dpdk-dev] [PATCH v5 2/3] build: add abi checks to meson Kevin Laatz
2019-12-13 14:03         ` [dpdk-dev] [PATCH v5 3/3] build: clean up experimental syms check Kevin Laatz
2019-12-13 16:40         ` [dpdk-dev] [PATCH v6 00/11] Add ABI compatibility checks to the meson build Kevin Laatz
2019-12-13 16:41           ` [dpdk-dev] [PATCH v6 01/11] lib: add dump files for v20.0 ABI Kevin Laatz
2019-12-13 16:41           ` [dpdk-dev] [PATCH v6 02/11] drivers/bus: " Kevin Laatz
2019-12-13 16:41           ` [dpdk-dev] [PATCH v6 03/11] drivers/mempool: " Kevin Laatz
2019-12-13 16:41           ` [dpdk-dev] [PATCH v6 04/11] drivers/common: " Kevin Laatz
2019-12-13 16:41           ` [dpdk-dev] [PATCH v6 05/11] drivers/raw: " Kevin Laatz
2019-12-13 16:41           ` [dpdk-dev] [PATCH v6 06/11] drivers/crypto: " Kevin Laatz
2019-12-13 16:41           ` [dpdk-dev] [PATCH v6 07/11] drivers/compress: " Kevin Laatz
2019-12-13 16:41           ` [dpdk-dev] [PATCH v6 08/11] drivers/net: " Kevin Laatz
2019-12-13 16:41           ` [dpdk-dev] [PATCH v6 09/11] drivers/net/intel: " Kevin Laatz
2019-12-13 16:41           ` [dpdk-dev] [PATCH v6 10/11] build: add abi checks to meson Kevin Laatz
2019-12-13 16:41           ` [dpdk-dev] [PATCH v6 11/11] build: clean up experimental syms check Kevin Laatz
2019-12-19 21:58           ` [dpdk-dev] [PATCH v6 00/11] Add ABI compatibility checks to the meson build David Marchand
2019-12-20 10:20             ` Thomas Monjalon [this message]
2019-12-20 11:04             ` Bruce Richardson
2019-12-20 13:19               ` David Marchand
2019-12-20 14:17                 ` Bruce Richardson
2020-01-06 13:20                   ` Aaron Conole

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=1954775.STNsi1xJb4@xps \
    --to=thomas@monjalon.net \
    --cc=aconole@redhat.com \
    --cc=bruce.richardson@intel.com \
    --cc=cernay@netcope.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=kevin.laatz@intel.com \
    --cc=ray.kinsella@intel.com \
    --cc=tdu@semihalf.com \
    --cc=zr@semihalf.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.