mbox series

[v6,00/27] Bus and device cleanup for 22.11

Message ID 20220914075841.51555-1-david.marchand@redhat.com (mailing list archive)
Headers
Series Bus and device cleanup for 22.11 |

Message

David Marchand Sept. 14, 2022, 7:58 a.m. UTC
  The rte_bus, rte_driver and rte_device objects are part of the public
ABI and this has proved to be a problem when needing to extend them.
This series hides them, and mark associated driver only API as internal.

A good amount of the patches are preparation work on rte_bus.h,
rte_dev.h, rte_devargs.h and rte_eal.h headers, removing dependencies
between them.

PCI bus specific handling are removed from testpmd, unit tests and
examples.

After this series, driver-only API headers for registering to buses are
not exported anymore, unless the enable_driver_sdk meson option is
selected.

New accessors for rte_bus, rte_driver and rte_device have been added,
marked with an experimental tag first when introducing them, and later
in the series marked as stable since external users will want to use
those drop-in replacements right away.

A check is added to ensure we won't pollute app/ and examples/ again,
though some unit tests are left intentionnally untouched as they test
some internals of DPDK.

Changes since v5:
- fixed Windows build (bis...),

Changes since v4:
- (hopefully, because I can't test) fixed Windows build,
- dropped unneeded change in vdev unit test,

Changes since RFC v3:
- marked the series as non-RFC,
- rebased on v22.11-rc0,
- marked RTE_FUNC_PTR_* macros as deprecated,
- split the bus specific patch in two patches,

Changes since RFC v2:
- added check for additions of include .*_(driver|pmd)\.h in apps and
  examples,
- dropped legacy/debug testpmd commands to read PCI BAR0 registers,
- dropped patches on bbdev, ethdev, rawdev driver headers for now,
- reordered patches and separated changes per bus type to ease review,
- added more accessor for device,
- introduced rte_dev_bus_info to provide a Bus specific description of
  a device, a first use is for providing a PCI device vendor / device
  identifiers that are otherwise unavailable through a generic existing
  API,

Changes since RFC v1:
- added two more cleanups (new patch 3 and 4) for unit test and examples
  relying on PCI specific info,
- went on with masking rte_driver and rte_device too,
  

Comments

David Marchand Sept. 24, 2022, 7:14 a.m. UTC | #1
On Wed, Sep 14, 2022 at 9:59 AM David Marchand
<david.marchand@redhat.com> wrote:
>
> The rte_bus, rte_driver and rte_device objects are part of the public
> ABI and this has proved to be a problem when needing to extend them.
> This series hides them, and mark associated driver only API as internal.
>
> A good amount of the patches are preparation work on rte_bus.h,
> rte_dev.h, rte_devargs.h and rte_eal.h headers, removing dependencies
> between them.
>
> PCI bus specific handling are removed from testpmd, unit tests and
> examples.
>
> After this series, driver-only API headers for registering to buses are
> not exported anymore, unless the enable_driver_sdk meson option is
> selected.
>
> New accessors for rte_bus, rte_driver and rte_device have been added,
> marked with an experimental tag first when introducing them, and later
> in the series marked as stable since external users will want to use
> those drop-in replacements right away.
>
> A check is added to ensure we won't pollute app/ and examples/ again,
> though some unit tests are left intentionnally untouched as they test
> some internals of DPDK.
>
> Changes since v5:
> - fixed Windows build (bis...),

I rebased the series and pushed it to main.
I had tested the series against some next-* repositories before.
It should be rather painless, but please subtree maintainers, don't
wait too much and rebase your trees.