[dpdk-dev] [PATCH v5] build: disable experimental API check internally

Trahe, Fiona fiona.trahe at intel.com
Fri Apr 17 17:52:24 CEST 2020


Hi David,

> -----Original Message-----
> From: Trahe, Fiona <fiona.trahe at intel.com>
> Sent: Friday, April 17, 2020 4:05 PM
> To: David Marchand <david.marchand at redhat.com>
> Cc: dev <dev at dpdk.org>; Jerin Jacob <jerinjacobk at gmail.com>; Pavan Nikhilesh
> <pbhagavatula at marvell.com>; Richardson, Bruce <bruce.richardson at intel.com>; Thomas Monjalon
> <thomas at monjalon.net>; Yigit, Ferruh <ferruh.yigit at intel.com>; Hemant Agrawal
> <hemant.agrawal at nxp.com>; Trahe, Fiona <fiona.trahe at intel.com>
> Subject: RE: [dpdk-dev] [PATCH v5] build: disable experimental API check internally
> 
> Hi Davd,
> 
> > -----Original Message-----
> > From: David Marchand <david.marchand at redhat.com>
> > Sent: Friday, April 17, 2020 2:56 PM
> > To: Trahe, Fiona <fiona.trahe at intel.com>
> > Cc: dev <dev at dpdk.org>; Jerin Jacob <jerinjacobk at gmail.com>; Pavan Nikhilesh
> > <pbhagavatula at marvell.com>; Richardson, Bruce <bruce.richardson at intel.com>; Thomas
> Monjalon
> > <thomas at monjalon.net>; Yigit, Ferruh <ferruh.yigit at intel.com>; Hemant Agrawal
> > <hemant.agrawal at nxp.com>
> > Subject: Re: [dpdk-dev] [PATCH v5] build: disable experimental API check internally
> >
> > On Fri, Apr 17, 2020 at 3:44 PM Trahe, Fiona <fiona.trahe at intel.com> wrote:
> > >
> > > Hi David,
> > >
> > > > -----Original Message-----
> > > > From: David Marchand <david.marchand at redhat.com>
> > > > Sent: Friday, April 17, 2020 2:23 PM
> > > > To: Trahe, Fiona <fiona.trahe at intel.com>
> > > > Cc: dev <dev at dpdk.org>; Jerin Jacob <jerinjacobk at gmail.com>; Pavan Nikhilesh
> > > > <pbhagavatula at marvell.com>; Richardson, Bruce <bruce.richardson at intel.com>; Thomas
> > Monjalon
> > > > <thomas at monjalon.net>; Yigit, Ferruh <ferruh.yigit at intel.com>; Hemant Agrawal
> > > > <hemant.agrawal at nxp.com>
> > > > Subject: Re: [dpdk-dev] [PATCH v5] build: disable experimental API check internally
> > > >
> > > > On Fri, Apr 17, 2020 at 12:21 PM Trahe, Fiona <fiona.trahe at intel.com> wrote:
> > > > > I see this is already applied.
> > > > >
> > > > > However,
> > > > > rte_cryptodev_queue_pair_setup() calls
> > > > > rte_cryptodev_sym_get_existing_header_session_size()
> > > > > The former is a stable API, the latter is experimental.
> > > > > So I expect the build to break when ALLOW_EXPERIMENTAL_API is disabled.
> > > [Fiona] Thanks for confirming where the flag is.
> > > But I think you've missed my point.
> > > What about this problem?
> >
> > - dpdk-test-crypto-perf is built as part of the dpdk compilation itself.
> > There is no user to be made aware of its use of experimental API.
> >
> > Now if you are talking about how the crypto API is bent in that it
> > exposes a stable ABI with an underlying experimental ABI, this has
> > nothing to do with the flag change.
> [Fiona] Before this if an application didn't set ALLOW_EXPERIMENTAL_API
> (which I expect is the default for many apps) then the build worked fine
> as long as the app didn't directly call an experimental API. The crypto lib
> still built ok as its own Makefile had the flag.
> I just tried this with dpdk-test-crypto-perf. I had to remove one direct call,
> without that it built ok. When I remove the flag from the crypto lib Makefile, the
> build breaks as expected due to the above issue.
> 
> So, yes, cryptodev lib should be fixed.
> However this patch just applied will potentially break builds for many apps!
> It could expose many other issues of internal dependencies on experimental APIs.

[Fiona] Ok, I get it now, there's no issue.
I see now why the patch name was changed from "global" to "internal"!
I had understood that the flag the application set or didn't set would ripple down
through the whole build. Instead the flag is set (or not set) once by the application
only affecting direct API calls and once for the rest of the build, which includes
apps in the app folder, but not apps in the examples folder.
So allowing experimental APIs internally, while disallowing them externally.
A bit confusing, but ok, doesn't break anything and definitely better than
having flags in every Make/meson file.

Fiona




More information about the dev mailing list