doc: announce library refactor for ABI improvement

Message ID 20210826103500.2172550-1-ferruh.yigit@intel.com (mailing list archive)
State Not Applicable, archived
Delegated to: Thomas Monjalon
Headers
Series doc: announce library refactor for ABI improvement |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/github-robot: build success github build: passed
ci/iol-spell-check-testing success Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-aarch64-unit-testing fail Testing issues
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS

Commit Message

Ferruh Yigit Aug. 26, 2021, 10:35 a.m. UTC
  Target is to reduce the public interface surface to improve the ABI
stability and this is preparation for the longer term stable ABI
support.

Mainly device abstraction layer libraries are impacted because they have
two interfaces, one is public interface to the applications and other is
internal interface to the drivers. Some driver/internal interface
structures/symbols are in the public interface by mistake, this work is
to clean them.
Also some libraries has 'static inline' functions for performance
reasons (like ones in the ethdev), this work plans to split the
structures and hide the part that is not used by inline functions.

The need of the work for the stable ABI already discussed and planned by
the DPDK technical board:
https://mails.dpdk.org/archives/dev/2021-July/214662.html

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
Cc: Konstantin Ananyev <konstantin.ananyev@intel.com>
Cc: Jerin Jacob Kollanukkaran <jerinj@marvell.com>
Cc: Akhil Goyal <gakhil@marvell.com>
CC: Ray Kinsella <mdr@ashroe.eu>
---
 doc/guides/rel_notes/deprecation.rst | 5 +++++
 1 file changed, 5 insertions(+)
  

Comments

Akhil Goyal Aug. 26, 2021, 10:46 a.m. UTC | #1
> Target is to reduce the public interface surface to improve the ABI
> stability and this is preparation for the longer term stable ABI
> support.
> 
> Mainly device abstraction layer libraries are impacted because they have
> two interfaces, one is public interface to the applications and other is
> internal interface to the drivers. Some driver/internal interface
> structures/symbols are in the public interface by mistake, this work is
> to clean them.
> Also some libraries has 'static inline' functions for performance
> reasons (like ones in the ethdev), this work plans to split the
> structures and hide the part that is not used by inline functions.
> 
> The need of the work for the stable ABI already discussed and planned by
> the DPDK technical board:
> https://mails.dpdk.org/archives/dev/2021-July/214662.html
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
Acked-by: Akhil Goyal <gakhil@marvell.com>
  
Jerin Jacob Aug. 26, 2021, 10:47 a.m. UTC | #2
On Thu, Aug 26, 2021 at 4:16 PM Akhil Goyal <gakhil@marvell.com> wrote:
>
> > Target is to reduce the public interface surface to improve the ABI
> > stability and this is preparation for the longer term stable ABI
> > support.
> >
> > Mainly device abstraction layer libraries are impacted because they have
> > two interfaces, one is public interface to the applications and other is
> > internal interface to the drivers. Some driver/internal interface
> > structures/symbols are in the public interface by mistake, this work is
> > to clean them.
> > Also some libraries has 'static inline' functions for performance
> > reasons (like ones in the ethdev), this work plans to split the
> > structures and hide the part that is not used by inline functions.
> >
> > The need of the work for the stable ABI already discussed and planned by
> > the DPDK technical board:
> > https://mails.dpdk.org/archives/dev/2021-July/214662.html
> >
> > Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> > ---
> Acked-by: Akhil Goyal <gakhil@marvell.com>

Acked-by: Jerin Jacob <jerinj@marvell.com>
  
Bruce Richardson Aug. 26, 2021, 11:04 a.m. UTC | #3
On Thu, Aug 26, 2021 at 10:46:35AM +0000, Akhil Goyal wrote:
> > Target is to reduce the public interface surface to improve the ABI
> > stability and this is preparation for the longer term stable ABI
> > support.
> > 
> > Mainly device abstraction layer libraries are impacted because they have
> > two interfaces, one is public interface to the applications and other is
> > internal interface to the drivers. Some driver/internal interface
> > structures/symbols are in the public interface by mistake, this work is
> > to clean them.
> > Also some libraries has 'static inline' functions for performance
> > reasons (like ones in the ethdev), this work plans to split the
> > structures and hide the part that is not used by inline functions.
> > 
> > The need of the work for the stable ABI already discussed and planned by
> > the DPDK technical board:
> > https://mails.dpdk.org/archives/dev/2021-July/214662.html
> > 
> > Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> > ---
> Acked-by: Akhil Goyal <gakhil@marvell.com>

Acked-by: Bruce Richardson <bruce.richardson@intel.com>
  
Andrew Rybchenko Aug. 26, 2021, 3:44 p.m. UTC | #4
On 8/26/21 2:04 PM, Bruce Richardson wrote:
> On Thu, Aug 26, 2021 at 10:46:35AM +0000, Akhil Goyal wrote:
>>> Target is to reduce the public interface surface to improve the ABI
>>> stability and this is preparation for the longer term stable ABI
>>> support.
>>>
>>> Mainly device abstraction layer libraries are impacted because they have
>>> two interfaces, one is public interface to the applications and other is
>>> internal interface to the drivers. Some driver/internal interface
>>> structures/symbols are in the public interface by mistake, this work is
>>> to clean them.
>>> Also some libraries has 'static inline' functions for performance
>>> reasons (like ones in the ethdev), this work plans to split the
>>> structures and hide the part that is not used by inline functions.
>>>
>>> The need of the work for the stable ABI already discussed and planned by
>>> the DPDK technical board:
>>> https://mails.dpdk.org/archives/dev/2021-July/214662.html
>>>
>>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>>> ---
>> Acked-by: Akhil Goyal <gakhil@marvell.com>
> 
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> 

Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
  
Ray Kinsella Aug. 31, 2021, 3:48 p.m. UTC | #5
On 26/08/2021 16:44, Andrew Rybchenko wrote:
> On 8/26/21 2:04 PM, Bruce Richardson wrote:
>> On Thu, Aug 26, 2021 at 10:46:35AM +0000, Akhil Goyal wrote:
>>>> Target is to reduce the public interface surface to improve the ABI
>>>> stability and this is preparation for the longer term stable ABI
>>>> support.
>>>>
>>>> Mainly device abstraction layer libraries are impacted because they have
>>>> two interfaces, one is public interface to the applications and other is
>>>> internal interface to the drivers. Some driver/internal interface
>>>> structures/symbols are in the public interface by mistake, this work is
>>>> to clean them.
>>>> Also some libraries has 'static inline' functions for performance
>>>> reasons (like ones in the ethdev), this work plans to split the
>>>> structures and hide the part that is not used by inline functions.
>>>>
>>>> The need of the work for the stable ABI already discussed and planned by
>>>> the DPDK technical board:
>>>> https://mails.dpdk.org/archives/dev/2021-July/214662.html
>>>>
>>>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>>>> ---
>>> Acked-by: Akhil Goyal <gakhil@marvell.com>
>>
>> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
>>
> 
> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
  

Patch

diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 76a4abfd6b0b..1f02d9e14501 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -63,6 +63,11 @@  Deprecation Notices
   us extending existing enum/define.
   One solution can be using a fixed size array instead of ``.*MAX.*`` value.
 
+* lib: Will hide internal data structures and symbols from the public interfaces
+  as much as possible in v21.11.
+  This ABI break is done to improve the ABI stability in the long term and will
+  be done mainly, but not limited to, in device abstraction layer libraries.
+
 * ethdev: Will add ``RTE_ETH_`` prefix to all ethdev macros/enums in v21.11.
   Macros will be added for backward compatibility.
   Backward compatibility macros will be removed on v22.11.