mbox series

[v2,0/7] expand list of optional libraries

Message ID 20230622150522.3228294-1-bruce.richardson@intel.com (mailing list archive)
Headers
Series expand list of optional libraries |

Message

Bruce Richardson June 22, 2023, 3:05 p.m. UTC
  DPDK still has many libraries which cannot be disabled as part of a
build. With the ongoing work to make it easier to only build a subset
of the libraries in DPDK, we can also work to expand the list of
libraries which can be enabled/disabled as desired.

This patch addresses a number of the "low-hanging fruit" libraries,
where only the unit test builds need minor changes to support
making the library optional. The rest of the build system is already
well set up for selective disabling of libraries.

For better support of enabling components, especially those more
integrated into DPDK unit tests, rework of the test meson.build file
is likely needed. For example, it could probably be better rewritten
to use a dictionary of files and the dependencies of each file, and
the unit test commands each provides. However, such rework is a
significant effort, and outside the scope of this patchset.

V2: fix checkpatch issues, since checkpatch doesn't like empty commit
    messages (even if the title is pretty self-explanatory!)

Bruce Richardson (7):
  build: make most device classes optional
  build: make membership library optional
  build: make bpf library optional
  build: make efd library optional
  build: make distributor library optional
  build: make fragmentation library optional
  build: make reorder library optional

 app/test/meson.build | 81 +++++++++++++++++++++++++++-----------------
 lib/meson.build      | 13 +++++++
 2 files changed, 63 insertions(+), 31 deletions(-)

--
2.39.2
  

Comments

David Marchand June 23, 2023, 10:25 a.m. UTC | #1
On Thu, Jun 22, 2023 at 5:13 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> DPDK still has many libraries which cannot be disabled as part of a
> build. With the ongoing work to make it easier to only build a subset
> of the libraries in DPDK, we can also work to expand the list of
> libraries which can be enabled/disabled as desired.
>
> This patch addresses a number of the "low-hanging fruit" libraries,
> where only the unit test builds need minor changes to support
> making the library optional. The rest of the build system is already
> well set up for selective disabling of libraries.
>
> For better support of enabling components, especially those more
> integrated into DPDK unit tests, rework of the test meson.build file
> is likely needed. For example, it could probably be better rewritten
> to use a dictionary of files and the dependencies of each file, and
> the unit test commands each provides. However, such rework is a
> significant effort, and outside the scope of this patchset.
>
> V2: fix checkpatch issues, since checkpatch doesn't like empty commit
>     messages (even if the title is pretty self-explanatory!)
>
> Bruce Richardson (7):
>   build: make most device classes optional
>   build: make membership library optional
>   build: make bpf library optional
>   build: make efd library optional
>   build: make distributor library optional
>   build: make fragmentation library optional
>   build: make reorder library optional
>
>  app/test/meson.build | 81 +++++++++++++++++++++++++++-----------------
>  lib/meson.build      | 13 +++++++
>  2 files changed, 63 insertions(+), 31 deletions(-)

There is a trivial conflict on the main repo (after lib/graph change),
so the CI did not run this v2 revision.

The v1 looked fine but there was a strange error in Intel report:
http://mails.dpdk.org/archives/test-report/2023-June/415672.html

Could you rebase please?
  
David Marchand June 23, 2023, 10:31 a.m. UTC | #2
On Fri, Jun 23, 2023 at 12:25 PM David Marchand
<david.marchand@redhat.com> wrote:
>
> On Thu, Jun 22, 2023 at 5:13 PM Bruce Richardson
> <bruce.richardson@intel.com> wrote:
> >
> > DPDK still has many libraries which cannot be disabled as part of a
> > build. With the ongoing work to make it easier to only build a subset
> > of the libraries in DPDK, we can also work to expand the list of
> > libraries which can be enabled/disabled as desired.
> >
> > This patch addresses a number of the "low-hanging fruit" libraries,
> > where only the unit test builds need minor changes to support
> > making the library optional. The rest of the build system is already
> > well set up for selective disabling of libraries.
> >
> > For better support of enabling components, especially those more
> > integrated into DPDK unit tests, rework of the test meson.build file
> > is likely needed. For example, it could probably be better rewritten
> > to use a dictionary of files and the dependencies of each file, and
> > the unit test commands each provides. However, such rework is a
> > significant effort, and outside the scope of this patchset.
> >
> > V2: fix checkpatch issues, since checkpatch doesn't like empty commit
> >     messages (even if the title is pretty self-explanatory!)
> >
> > Bruce Richardson (7):
> >   build: make most device classes optional
> >   build: make membership library optional
> >   build: make bpf library optional
> >   build: make efd library optional
> >   build: make distributor library optional
> >   build: make fragmentation library optional
> >   build: make reorder library optional
> >
> >  app/test/meson.build | 81 +++++++++++++++++++++++++++-----------------
> >  lib/meson.build      | 13 +++++++
> >  2 files changed, 63 insertions(+), 31 deletions(-)
>
> There is a trivial conflict on the main repo (after lib/graph change),
> so the CI did not run this v2 revision.
>
> The v1 looked fine but there was a strange error in Intel report:
> http://mails.dpdk.org/archives/test-report/2023-June/415672.html

Hum, we did not receive the ovsrobot report on v1 (not sure why), but
looking at it manually, we have one failure too:
https://github.com/ovsrobot/dpdk/actions/runs/5346924872/jobs/9694636520#step:18:219

This is because we ask for the l3fwd example but its dependencies are disabled.
  
Bruce Richardson June 23, 2023, 11:08 a.m. UTC | #3
On Fri, Jun 23, 2023 at 12:31:10PM +0200, David Marchand wrote:
> On Fri, Jun 23, 2023 at 12:25 PM David Marchand
> <david.marchand@redhat.com> wrote:
> >
> > On Thu, Jun 22, 2023 at 5:13 PM Bruce Richardson
> > <bruce.richardson@intel.com> wrote:
> > >
> > > DPDK still has many libraries which cannot be disabled as part of a
> > > build. With the ongoing work to make it easier to only build a subset
> > > of the libraries in DPDK, we can also work to expand the list of
> > > libraries which can be enabled/disabled as desired.
> > >
> > > This patch addresses a number of the "low-hanging fruit" libraries,
> > > where only the unit test builds need minor changes to support
> > > making the library optional. The rest of the build system is already
> > > well set up for selective disabling of libraries.
> > >
> > > For better support of enabling components, especially those more
> > > integrated into DPDK unit tests, rework of the test meson.build file
> > > is likely needed. For example, it could probably be better rewritten
> > > to use a dictionary of files and the dependencies of each file, and
> > > the unit test commands each provides. However, such rework is a
> > > significant effort, and outside the scope of this patchset.
> > >
> > > V2: fix checkpatch issues, since checkpatch doesn't like empty commit
> > >     messages (even if the title is pretty self-explanatory!)
> > >
> > > Bruce Richardson (7):
> > >   build: make most device classes optional
> > >   build: make membership library optional
> > >   build: make bpf library optional
> > >   build: make efd library optional
> > >   build: make distributor library optional
> > >   build: make fragmentation library optional
> > >   build: make reorder library optional
> > >
> > >  app/test/meson.build | 81 +++++++++++++++++++++++++++-----------------
> > >  lib/meson.build      | 13 +++++++
> > >  2 files changed, 63 insertions(+), 31 deletions(-)
> >
> > There is a trivial conflict on the main repo (after lib/graph change),
> > so the CI did not run this v2 revision.
> >

I've already rebased and preparing a v3

> > The v1 looked fine but there was a strange error in Intel report:
> > http://mails.dpdk.org/archives/test-report/2023-June/415672.html
> 
> Hum, we did not receive the ovsrobot report on v1 (not sure why), but
> looking at it manually, we have one failure too:
> https://github.com/ovsrobot/dpdk/actions/runs/5346924872/jobs/9694636520#step:18:219
> 
> This is because we ask for the l3fwd example but its dependencies are disabled.
> 

Spotted this too, and working on a solution. Three options I considered:
1. keep eventdev as mandatory
2. don't build l3fwd as part of examples list (or build only with eventdev)
3. make eventdev an optional dependency of l3fwd.

I've gone for the latter (#3), which, though likely the more complicated
change is probably the best one. L3fwd is such a commonly referenced app, I
think it should be buildable in all configs, and I also think requiring
eventdev in all cases seems wrong. 

V3 coming soon....