DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH] doc: announce marking device and driver objects as internal
@ 2022-07-10  6:17 David Marchand
  2022-07-10  8:25 ` Andrew Rybchenko
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: David Marchand @ 2022-07-10  6:17 UTC (permalink / raw)
  To: dev, techboard; +Cc: Ray Kinsella

rte_driver and rte_device are unnecessarily exposed in the public API/ABI.
Announce that they will be made opaque in the public API and mark
associated API as internal.
This impacts all bus, as their driver registration mechanism will be
made internal.

Note: the PCI bus had a similar deprecation notice that we can remove as
the new one is more generic.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 doc/guides/rel_notes/deprecation.rst | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index a9fd6676be..b9cc267b30 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -38,6 +38,13 @@ Deprecation Notices
   external users may still register their bus using a new driver header (see
   ``enable_driver_sdk`` meson option).
 
+* drivers: As a followup on the work on the ``rte_bus`` object, the
+  ``rte_driver`` and ``rte_device`` objects (and as a domino effect, their
+  bus-specific counterparts) will be made opaque in DPDK 22.11.
+  Registering a driver on a bus will be marked as an internal API:
+  external users may still register their drivers using the bus specific
+  driver header (see ``enable_driver_sdk`` meson option).
+
 * mempool: Helper macro ``MEMPOOL_HEADER_SIZE()`` is deprecated and will
   be removed in DPDK 22.11. The replacement macro
   ``RTE_MEMPOOL_HEADER_SIZE()`` is internal only.
@@ -49,11 +56,6 @@ Deprecation Notices
 * mempool: The mempool API macros ``MEMPOOL_PG_*`` are deprecated and
   will be removed in DPDK 22.11.
 
-* pci: To reduce unnecessary ABIs exposed by DPDK bus driver, "rte_bus_pci.h"
-  will be made internal in 21.11 and macros/data structures/functions defined
-  in the header will not be considered as ABI anymore. This change is inspired
-  by the RFC https://patchwork.dpdk.org/project/dpdk/list/?series=17176.
-
 * lib: will fix extending some enum/define breaking the ABI. There are multiple
   samples in DPDK that enum/define terminated with a ``.*MAX.*`` value which is
   used by iterators, and arrays holding these values are sized with this
-- 
2.36.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] doc: announce marking device and driver objects as internal
  2022-07-10  6:17 [PATCH] doc: announce marking device and driver objects as internal David Marchand
@ 2022-07-10  8:25 ` Andrew Rybchenko
  2022-07-11  2:16 ` Xia, Chenbo
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Andrew Rybchenko @ 2022-07-10  8:25 UTC (permalink / raw)
  To: David Marchand, dev, techboard; +Cc: Ray Kinsella

On 7/10/22 09:17, David Marchand wrote:
> rte_driver and rte_device are unnecessarily exposed in the public API/ABI.
> Announce that they will be made opaque in the public API and mark
> associated API as internal.
> This impacts all bus, as their driver registration mechanism will be
> made internal.
> 
> Note: the PCI bus had a similar deprecation notice that we can remove as
> the new one is more generic.
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>

Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH] doc: announce marking device and driver objects as internal
  2022-07-10  6:17 [PATCH] doc: announce marking device and driver objects as internal David Marchand
  2022-07-10  8:25 ` Andrew Rybchenko
@ 2022-07-11  2:16 ` Xia, Chenbo
  2022-07-11 12:36   ` Thomas Monjalon
  2022-07-11 15:01 ` Jerin Jacob
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 9+ messages in thread
From: Xia, Chenbo @ 2022-07-11  2:16 UTC (permalink / raw)
  To: David Marchand, dev, techboard
  Cc: Ray Kinsella, Liu, Changpeng, Harris, James R, Walker, Benjamin,
	Thomas Monjalon

Hi David,

> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Sunday, July 10, 2022 2:18 PM
> To: dev@dpdk.org; techboard@dpdk.org
> Cc: Ray Kinsella <mdr@ashroe.eu>
> Subject: [PATCH] doc: announce marking device and driver objects as
> internal
> 
> rte_driver and rte_device are unnecessarily exposed in the public API/ABI.
> Announce that they will be made opaque in the public API and mark
> associated API as internal.
> This impacts all bus, as their driver registration mechanism will be
> made internal.
> 
> Note: the PCI bus had a similar deprecation notice that we can remove as
> the new one is more generic.
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
>  doc/guides/rel_notes/deprecation.rst | 12 +++++++-----
>  1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/doc/guides/rel_notes/deprecation.rst
> b/doc/guides/rel_notes/deprecation.rst
> index a9fd6676be..b9cc267b30 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -38,6 +38,13 @@ Deprecation Notices
>    external users may still register their bus using a new driver header
> (see
>    ``enable_driver_sdk`` meson option).
> 
> +* drivers: As a followup on the work on the ``rte_bus`` object, the
> +  ``rte_driver`` and ``rte_device`` objects (and as a domino effect,
> their
> +  bus-specific counterparts) will be made opaque in DPDK 22.11.
> +  Registering a driver on a bus will be marked as an internal API:
> +  external users may still register their drivers using the bus specific
> +  driver header (see ``enable_driver_sdk`` meson option).
> +

Cc SPDK folks

Thanks for your work! My only concern is using enable_driver_sdk may not be
a good way for SPDK based on the discussion.
http://patchwork.dpdk.org/project/dpdk/cover/20210918022443.12719-1-chenbo.xia@intel.com/

But overall this idea makes sense, so:

Acked-by: Chenbo Xia <chenbo.xia@intel.com>


>  * mempool: Helper macro ``MEMPOOL_HEADER_SIZE()`` is deprecated and will
>    be removed in DPDK 22.11. The replacement macro
>    ``RTE_MEMPOOL_HEADER_SIZE()`` is internal only.
> @@ -49,11 +56,6 @@ Deprecation Notices
>  * mempool: The mempool API macros ``MEMPOOL_PG_*`` are deprecated and
>    will be removed in DPDK 22.11.
> 
> -* pci: To reduce unnecessary ABIs exposed by DPDK bus driver,
> "rte_bus_pci.h"
> -  will be made internal in 21.11 and macros/data structures/functions
> defined
> -  in the header will not be considered as ABI anymore. This change is
> inspired
> -  by the RFC https://patchwork.dpdk.org/project/dpdk/list/?series=17176.
> -
>  * lib: will fix extending some enum/define breaking the ABI. There are
> multiple
>    samples in DPDK that enum/define terminated with a ``.*MAX.*`` value
> which is
>    used by iterators, and arrays holding these values are sized with this
> --
> 2.36.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] doc: announce marking device and driver objects as internal
  2022-07-11  2:16 ` Xia, Chenbo
@ 2022-07-11 12:36   ` Thomas Monjalon
  0 siblings, 0 replies; 9+ messages in thread
From: Thomas Monjalon @ 2022-07-11 12:36 UTC (permalink / raw)
  To: David Marchand, Harris, James R, Walker, Benjamin, Xia, Chenbo
  Cc: dev, techboard, Ray Kinsella, Liu, Changpeng

11/07/2022 04:16, Xia, Chenbo:
> From: David Marchand <david.marchand@redhat.com>
> > rte_driver and rte_device are unnecessarily exposed in the public API/ABI.
> > Announce that they will be made opaque in the public API and mark
> > associated API as internal.
> > This impacts all bus, as their driver registration mechanism will be
> > made internal.
> > 
> > Note: the PCI bus had a similar deprecation notice that we can remove as
> > the new one is more generic.
[...]
> > --- a/doc/guides/rel_notes/deprecation.rst
> > +++ b/doc/guides/rel_notes/deprecation.rst
> > +* drivers: As a followup on the work on the ``rte_bus`` object, the
> > +  ``rte_driver`` and ``rte_device`` objects (and as a domino effect,
> > their
> > +  bus-specific counterparts) will be made opaque in DPDK 22.11.
> > +  Registering a driver on a bus will be marked as an internal API:
> > +  external users may still register their drivers using the bus specific
> > +  driver header (see ``enable_driver_sdk`` meson option).
> > +
> 
> Cc SPDK folks
> 
> Thanks for your work! My only concern is using enable_driver_sdk may not be
> a good way for SPDK based on the discussion.
> http://patchwork.dpdk.org/project/dpdk/cover/20210918022443.12719-1-chenbo.xia@intel.com/

Quick summary:
- Symbols exported by DPDK by default are supposed to be for applications.
- Option enable_driver_sdk allow installing headers to build drivers.
- Driver interface is not part of the stable ABI, i.e. no compat guarantee.
- SPDK is building drivers on top of DPDK bus drivers (PCI for now).
- SPDK was asked to check whether anything else is required.

There is no decision about ABI guarantee because we lack feedbacks.
After this cleanup, the option enable_driver_sdk would be required
when working with buses, like SPDK.
Is there a real need to build against distro-provided package?
Is there a way to provide bus drivers SDK without messing with app SDK?


> But overall this idea makes sense, so:
> 
> Acked-by: Chenbo Xia <chenbo.xia@intel.com>

I like the cleanup as well. It will allow more enhancements in future.
I hope and believe we can accomodate SDK needs when it will be clear.

Acked-by: Thomas Monjalon <thomas@monjalon.net>



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] doc: announce marking device and driver objects as internal
  2022-07-10  6:17 [PATCH] doc: announce marking device and driver objects as internal David Marchand
  2022-07-10  8:25 ` Andrew Rybchenko
  2022-07-11  2:16 ` Xia, Chenbo
@ 2022-07-11 15:01 ` Jerin Jacob
  2022-07-12  4:25 ` Hemant Agrawal
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Jerin Jacob @ 2022-07-11 15:01 UTC (permalink / raw)
  To: David Marchand; +Cc: dpdk-dev, techboard, Ray Kinsella

On Sun, Jul 10, 2022 at 11:48 AM David Marchand
<david.marchand@redhat.com> wrote:
>
> rte_driver and rte_device are unnecessarily exposed in the public API/ABI.
> Announce that they will be made opaque in the public API and mark
> associated API as internal.
> This impacts all bus, as their driver registration mechanism will be
> made internal.
>
> Note: the PCI bus had a similar deprecation notice that we can remove as
> the new one is more generic.
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>

Acked-by: Jerin Jacob <jerinj@marvell.com>

> ---
>  doc/guides/rel_notes/deprecation.rst | 12 +++++++-----
>  1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index a9fd6676be..b9cc267b30 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -38,6 +38,13 @@ Deprecation Notices
>    external users may still register their bus using a new driver header (see
>    ``enable_driver_sdk`` meson option).
>
> +* drivers: As a followup on the work on the ``rte_bus`` object, the
> +  ``rte_driver`` and ``rte_device`` objects (and as a domino effect, their
> +  bus-specific counterparts) will be made opaque in DPDK 22.11.
> +  Registering a driver on a bus will be marked as an internal API:
> +  external users may still register their drivers using the bus specific
> +  driver header (see ``enable_driver_sdk`` meson option).
> +
>  * mempool: Helper macro ``MEMPOOL_HEADER_SIZE()`` is deprecated and will
>    be removed in DPDK 22.11. The replacement macro
>    ``RTE_MEMPOOL_HEADER_SIZE()`` is internal only.
> @@ -49,11 +56,6 @@ Deprecation Notices
>  * mempool: The mempool API macros ``MEMPOOL_PG_*`` are deprecated and
>    will be removed in DPDK 22.11.
>
> -* pci: To reduce unnecessary ABIs exposed by DPDK bus driver, "rte_bus_pci.h"
> -  will be made internal in 21.11 and macros/data structures/functions defined
> -  in the header will not be considered as ABI anymore. This change is inspired
> -  by the RFC https://patchwork.dpdk.org/project/dpdk/list/?series=17176.
> -
>  * lib: will fix extending some enum/define breaking the ABI. There are multiple
>    samples in DPDK that enum/define terminated with a ``.*MAX.*`` value which is
>    used by iterators, and arrays holding these values are sized with this
> --
> 2.36.1
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] doc: announce marking device and driver objects as internal
  2022-07-10  6:17 [PATCH] doc: announce marking device and driver objects as internal David Marchand
                   ` (2 preceding siblings ...)
  2022-07-11 15:01 ` Jerin Jacob
@ 2022-07-12  4:25 ` Hemant Agrawal
  2022-07-12  8:24 ` Kevin Laatz
  2022-07-15 16:22 ` Thomas Monjalon
  5 siblings, 0 replies; 9+ messages in thread
From: Hemant Agrawal @ 2022-07-12  4:25 UTC (permalink / raw)
  To: David Marchand, dev, techboard; +Cc: Ray Kinsella


On 7/10/2022 11:47 AM, David Marchand wrote:
> rte_driver and rte_device are unnecessarily exposed in the public API/ABI.
> Announce that they will be made opaque in the public API and mark
> associated API as internal.
> This impacts all bus, as their driver registration mechanism will be
> made internal.
>
> Note: the PCI bus had a similar deprecation notice that we can remove as
> the new one is more generic.
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>

Acked-by:  Hemant Agrawal <hemant.agrawal@nxp.com>



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] doc: announce marking device and driver objects as internal
  2022-07-10  6:17 [PATCH] doc: announce marking device and driver objects as internal David Marchand
                   ` (3 preceding siblings ...)
  2022-07-12  4:25 ` Hemant Agrawal
@ 2022-07-12  8:24 ` Kevin Laatz
  2022-07-12 11:38   ` Andrew Rybchenko
  2022-07-15 16:22 ` Thomas Monjalon
  5 siblings, 1 reply; 9+ messages in thread
From: Kevin Laatz @ 2022-07-12  8:24 UTC (permalink / raw)
  To: David Marchand, dev, techboard; +Cc: Ray Kinsella

On 10/07/2022 07:17, David Marchand wrote:
> rte_driver and rte_device are unnecessarily exposed in the public API/ABI.
> Announce that they will be made opaque in the public API and mark
> associated API as internal.
> This impacts all bus, as their driver registration mechanism will be
> made internal.
>
> Note: the PCI bus had a similar deprecation notice that we can remove as
> the new one is more generic.
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
>   doc/guides/rel_notes/deprecation.rst | 12 +++++++-----
>   1 file changed, 7 insertions(+), 5 deletions(-)
>
Thanks for working on this cleanup, David!

Acked-by: Kevin Laatz <kevin.laatz@intel.com>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] doc: announce marking device and driver objects as internal
  2022-07-12  8:24 ` Kevin Laatz
@ 2022-07-12 11:38   ` Andrew Rybchenko
  0 siblings, 0 replies; 9+ messages in thread
From: Andrew Rybchenko @ 2022-07-12 11:38 UTC (permalink / raw)
  To: Kevin Laatz, David Marchand, dev, techboard; +Cc: Ray Kinsella

On 7/12/22 11:24, Kevin Laatz wrote:
> On 10/07/2022 07:17, David Marchand wrote:
>> rte_driver and rte_device are unnecessarily exposed in the public 
>> API/ABI.
>> Announce that they will be made opaque in the public API and mark
>> associated API as internal.
>> This impacts all bus, as their driver registration mechanism will be
>> made internal.
>>
>> Note: the PCI bus had a similar deprecation notice that we can remove as
>> the new one is more generic.
>>
>> Signed-off-by: David Marchand <david.marchand@redhat.com>
>> ---
>>   doc/guides/rel_notes/deprecation.rst | 12 +++++++-----
>>   1 file changed, 7 insertions(+), 5 deletions(-)
>>
> Thanks for working on this cleanup, David!
> 
> Acked-by: Kevin Laatz <kevin.laatz@intel.com>
> 

Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] doc: announce marking device and driver objects as internal
  2022-07-10  6:17 [PATCH] doc: announce marking device and driver objects as internal David Marchand
                   ` (4 preceding siblings ...)
  2022-07-12  8:24 ` Kevin Laatz
@ 2022-07-15 16:22 ` Thomas Monjalon
  5 siblings, 0 replies; 9+ messages in thread
From: Thomas Monjalon @ 2022-07-15 16:22 UTC (permalink / raw)
  To: David Marchand; +Cc: dev, Ray Kinsella

10/07/2022 08:17, David Marchand:
> rte_driver and rte_device are unnecessarily exposed in the public API/ABI.
> Announce that they will be made opaque in the public API and mark
> associated API as internal.
> This impacts all bus, as their driver registration mechanism will be
> made internal.
> 
> Note: the PCI bus had a similar deprecation notice that we can remove as
> the new one is more generic.
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>

    Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
    Acked-by: Chenbo Xia <chenbo.xia@intel.com>
    Acked-by: Thomas Monjalon <thomas@monjalon.net>
    Acked-by: Jerin Jacob <jerinj@marvell.com>
    Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
    Acked-by: Kevin Laatz <kevin.laatz@intel.com>
    Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>

Applied, thanks.



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2022-07-15 16:22 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-10  6:17 [PATCH] doc: announce marking device and driver objects as internal David Marchand
2022-07-10  8:25 ` Andrew Rybchenko
2022-07-11  2:16 ` Xia, Chenbo
2022-07-11 12:36   ` Thomas Monjalon
2022-07-11 15:01 ` Jerin Jacob
2022-07-12  4:25 ` Hemant Agrawal
2022-07-12  8:24 ` Kevin Laatz
2022-07-12 11:38   ` Andrew Rybchenko
2022-07-15 16:22 ` Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).