Hi David,

> -----Original Message-----
> From: Trahe, Fiona <fiona.tr...@intel.com>
> Sent: Friday, April 17, 2020 4:05 PM
> To: David Marchand <david.march...@redhat.com>
> Cc: dev <dev@dpdk.org>; Jerin Jacob <jerinjac...@gmail.com>; Pavan Nikhilesh
> <pbhagavat...@marvell.com>; Richardson, Bruce <bruce.richard...@intel.com>; 
> Thomas Monjalon
> <tho...@monjalon.net>; Yigit, Ferruh <ferruh.yi...@intel.com>; Hemant Agrawal
> <hemant.agra...@nxp.com>; Trahe, Fiona <fiona.tr...@intel.com>
> Subject: RE: [dpdk-dev] [PATCH v5] build: disable experimental API check 
> internally
> 
> Hi Davd,
> 
> > -----Original Message-----
> > From: David Marchand <david.march...@redhat.com>
> > Sent: Friday, April 17, 2020 2:56 PM
> > To: Trahe, Fiona <fiona.tr...@intel.com>
> > Cc: dev <dev@dpdk.org>; Jerin Jacob <jerinjac...@gmail.com>; Pavan Nikhilesh
> > <pbhagavat...@marvell.com>; Richardson, Bruce <bruce.richard...@intel.com>; 
> > Thomas
> Monjalon
> > <tho...@monjalon.net>; Yigit, Ferruh <ferruh.yi...@intel.com>; Hemant 
> > Agrawal
> > <hemant.agra...@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.tr...@intel.com> wrote:
> > >
> > > Hi David,
> > >
> > > > -----Original Message-----
> > > > From: David Marchand <david.march...@redhat.com>
> > > > Sent: Friday, April 17, 2020 2:23 PM
> > > > To: Trahe, Fiona <fiona.tr...@intel.com>
> > > > Cc: dev <dev@dpdk.org>; Jerin Jacob <jerinjac...@gmail.com>; Pavan 
> > > > Nikhilesh
> > > > <pbhagavat...@marvell.com>; Richardson, Bruce 
> > > > <bruce.richard...@intel.com>; Thomas
> > Monjalon
> > > > <tho...@monjalon.net>; Yigit, Ferruh <ferruh.yi...@intel.com>; Hemant 
> > > > Agrawal
> > > > <hemant.agra...@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.tr...@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


Reply via email to