Skip to contentSkip to conversation

doc: announce removal of ABIs in PCI bus driver

PATCH Applied Chenbo Xia 6 participants 10 messages Jun 1, 2021 – Aug 3, 2021

lore
Share & tools
lore

Chenbo Xia

author
#0 lore raw

PATCH 1/1 doc: announce removal of ABIs in PCI bus driver

All ABIs in PCI bus driver, which are defined in rte_buc_pci.h, will be removed and the header will be made internal.

---
 doc/guides/rel_notes/deprecation.rst | 5 +++++
 1 file changed, 5 insertions(+)
doc/guides/rel_notes/deprecation.rst +5 -0
index 9584d6bfd7..b01f46c62e 100644
@@ -147,3 +147,8 @@ Deprecation Notices
 * cmdline: ``cmdline`` structure will be made opaque to hide platform-specific
   content. On Linux and FreeBSD, supported prior to DPDK 20.11,
   original structure will be kept until DPDK 21.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.
Signature · 1 line
2.17.1
#1 lore raw

Hi,

A gentle ping for comments..

Quoted 29 lines

-----Original Message-----
From: dev <[email protected]> On Behalf Of Chenbo Xia
Sent: Tuesday, June 1, 2021 4:42 PM
To: [email protected]; [email protected]
Cc: [email protected]; [email protected]
Subject: [dpdk-dev] [PATCH] doc: announce removal of ABIs in PCI bus driver

All ABIs in PCI bus driver, which are defined in rte_buc_pci.h, will be removed and the header will be made internal.

---
 doc/guides/rel_notes/deprecation.rst | 5 +++++
 1 file changed, 5 insertions(+)
doc/guides/rel_notes/deprecation.rst +0 -0
index 9584d6bfd7..b01f46c62e 100644
@@ -147,3 +147,8 @@ Deprecation Notices
 * cmdline: ``cmdline`` structure will be made opaque to hide platform-

specific
content. On Linux and FreeBSD, supported prior to DPDK 20.11, original structure will be kept until DPDK 21.11.

doc/guides/rel_notes/deprecation.rst +4 -0
+
+* 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
Quoted 2 lines

inspired
+ by the RFC https://patchwork.dpdk.org/project/dpdk/list/?series=17176.

I see there's some ABI improvement work on-going and I think it could be part of the work. If it makes sense to you, I'd like some ACKs.

Thanks,
Chenbo

Quoted 2 lines

--
2.17.1

Acked-by
#2 lore raw
Quoted 30 lines · Chenbo

Hi,

A gentle ping for comments..

Quoted 26 lines

-----Original Message-----
From: dev <[email protected]> On Behalf Of Chenbo Xia
Sent: Tuesday, June 1, 2021 4:42 PM
To: [email protected]; [email protected]
Cc: [email protected]; [email protected]
Subject: [dpdk-dev] [PATCH] doc: announce removal of ABIs in PCI bus driver

All ABIs in PCI bus driver, which are defined in rte_buc_pci.h, will be removed and the header will be made internal.

---
 doc/guides/rel_notes/deprecation.rst | 5 +++++
 1 file changed, 5 insertions(+)
doc/guides/rel_notes/deprecation.rst +0 -0
index 9584d6bfd7..b01f46c62e 100644
@@ -147,3 +147,8 @@ Deprecation Notices
 * cmdline: ``cmdline`` structure will be made opaque to hide platform-

specific
content. On Linux and FreeBSD, supported prior to DPDK 20.11, original structure will be kept until DPDK 21.11.
+

Quoted 9 lines
Quoted 5 lines
doc/guides/rel_notes/deprecation.rst +3 -0
+* 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.

I see there's some ABI improvement work on-going and I think it could be part of the work. If it makes sense to you, I'd like some ACKs.

I am for reducing the public ABI as much as possible. How big will the change be? Is the 'rte_bus_pci.h' used other than './drivers/bus/pci/'?

#3 lore raw

Hi, Ferruh

Quoted 51 lines

-----Original Message-----
From: Yigit, Ferruh <[email protected]>
Sent: Friday, July 23, 2021 8:47 PM
To: Xia, Chenbo <[email protected]>; [email protected]; [email protected]
Cc: [email protected]; [email protected]; [email protected]
Subject: Re: [dpdk-dev] [PATCH] doc: announce removal of ABIs in PCI bus driver

Quoted 10 lines · Chenbo

Hi,

A gentle ping for comments..

Quoted 6 lines

-----Original Message-----
From: dev <[email protected]> On Behalf Of Chenbo Xia
Sent: Tuesday, June 1, 2021 4:42 PM
To: [email protected]; [email protected]
Cc: [email protected]; [email protected]
Subject: [dpdk-dev] [PATCH] doc: announce removal of ABIs in PCI bus

driver

Quoted 9 lines
Quoted 9 lines

All ABIs in PCI bus driver, which are defined in rte_buc_pci.h, will be removed and the header will be made internal.

---
 doc/guides/rel_notes/deprecation.rst | 5 +++++
 1 file changed, 5 insertions(+)
Quoted 12 lines

doc/guides/rel_notes/deprecation.rst

Quoted 12 lines
doc/guides/rel_notes/deprecation.rst +0 -0
index 9584d6bfd7..b01f46c62e 100644
@@ -147,3 +147,8 @@ Deprecation Notices
 * cmdline: ``cmdline`` structure will be made opaque to hide platform-

specific
content. On Linux and FreeBSD, supported prior to DPDK 20.11, original structure will be kept until DPDK 21.11.

doc/guides/rel_notes/deprecation.rst +2 -0
+
+* pci: To reduce unnecessary ABIs exposed by DPDK bus driver,

"rte_bus_pci.h"

Quoted 1 line
Quoted 1 line

+ will be made internal in 21.11 and macros/data structures/functions

defined

Quoted 3 lines
Quoted 3 lines

+ 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.

Quoted 2 lines

I see there's some ABI improvement work on-going and I think it could be

part of

Quoted 8 lines
Quoted 2 lines

the work. If it makes sense to you, I'd like some ACKs.

I am for reducing the public ABI as much as possible. How big will the change
be? Is the 'rte_bus_pci.h' used other than './drivers/bus/pci/'?

I don't see big change here. And I am not sure if I understand your second question. The rte_bus_pci.h will still be used by drivers (maybe remove the rte prefix and change the file name).

Thanks,
Chenbo

#4 lore raw
Quoted 58 lines · Chenbo

Hi, Ferruh

Quoted 56 lines

-----Original Message-----
From: Yigit, Ferruh <[email protected]>
Sent: Friday, July 23, 2021 8:47 PM
To: Xia, Chenbo <[email protected]>; [email protected]; [email protected]
Cc: [email protected]; [email protected]; [email protected]
Subject: Re: [dpdk-dev] [PATCH] doc: announce removal of ABIs in PCI bus driver

Quoted 10 lines · Chenbo

Hi,

A gentle ping for comments..

Quoted 6 lines

-----Original Message-----
From: dev <[email protected]> On Behalf Of Chenbo Xia
Sent: Tuesday, June 1, 2021 4:42 PM
To: [email protected]; [email protected]
Cc: [email protected]; [email protected]
Subject: [dpdk-dev] [PATCH] doc: announce removal of ABIs in PCI bus

driver

Quoted 9 lines
Quoted 9 lines

All ABIs in PCI bus driver, which are defined in rte_buc_pci.h, will be removed and the header will be made internal.

---
 doc/guides/rel_notes/deprecation.rst | 5 +++++
 1 file changed, 5 insertions(+)
Quoted 12 lines

doc/guides/rel_notes/deprecation.rst

Quoted 12 lines
doc/guides/rel_notes/deprecation.rst +0 -0
index 9584d6bfd7..b01f46c62e 100644
@@ -147,3 +147,8 @@ Deprecation Notices
 * cmdline: ``cmdline`` structure will be made opaque to hide platform-

specific
content. On Linux and FreeBSD, supported prior to DPDK 20.11, original structure will be kept until DPDK 21.11.

doc/guides/rel_notes/deprecation.rst +2 -0
+
+* pci: To reduce unnecessary ABIs exposed by DPDK bus driver,

"rte_bus_pci.h"

Quoted 1 line
Quoted 1 line

+ will be made internal in 21.11 and macros/data structures/functions

defined

Quoted 3 lines
Quoted 3 lines

+ 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.

Quoted 2 lines

I see there's some ABI improvement work on-going and I think it could be

part of

Quoted 2 lines

the work. If it makes sense to you, I'd like some ACKs.

Quoted 8 lines
Quoted 3 lines

I am for reducing the public ABI as much as possible. How big will the change
be? Is the 'rte_bus_pci.h' used other than './drivers/bus/pci/'?

I don't see big change here. And I am not sure if I understand your second question. The rte_bus_pci.h will still be used by drivers (maybe remove the rte prefix and change the file name).

The file itself will still be exported in some cases, where the end-user has their own drivers which need to be compiled, so I'd recommend keeping the rte_ prefix. However, I think making all bus APIs internal-only to DPDK is a good idea.

#5 lore raw
Quoted 67 lines · Bruce Richardson
Quoted 58 lines · Chenbo

Hi, Ferruh

Quoted 56 lines

-----Original Message-----
From: Yigit, Ferruh <[email protected]>
Sent: Friday, July 23, 2021 8:47 PM
To: Xia, Chenbo <[email protected]>; [email protected]; [email protected]
Cc: [email protected]; [email protected]; [email protected]
Subject: Re: [dpdk-dev] [PATCH] doc: announce removal of ABIs in PCI bus driver

Quoted 10 lines · Chenbo

Hi,

A gentle ping for comments..

Quoted 6 lines

-----Original Message-----
From: dev <[email protected]> On Behalf Of Chenbo Xia
Sent: Tuesday, June 1, 2021 4:42 PM
To: [email protected]; [email protected]
Cc: [email protected]; [email protected]
Subject: [dpdk-dev] [PATCH] doc: announce removal of ABIs in PCI bus

driver

Quoted 9 lines
Quoted 9 lines

All ABIs in PCI bus driver, which are defined in rte_buc_pci.h, will be removed and the header will be made internal.

---
  doc/guides/rel_notes/deprecation.rst | 5 +++++
  1 file changed, 5 insertions(+)
Quoted 12 lines

doc/guides/rel_notes/deprecation.rst

Quoted 12 lines
doc/guides/rel_notes/deprecation.rst +0 -0
index 9584d6bfd7..b01f46c62e 100644
@@ -147,3 +147,8 @@ Deprecation Notices
  * cmdline: ``cmdline`` structure will be made opaque to hide platform-

specific
content. On Linux and FreeBSD, supported prior to DPDK 20.11, original structure will be kept until DPDK 21.11.

doc/guides/rel_notes/deprecation.rst +2 -0
+
+* pci: To reduce unnecessary ABIs exposed by DPDK bus driver,

"rte_bus_pci.h"

Quoted 1 line
Quoted 1 line

+ will be made internal in 21.11 and macros/data structures/functions

defined

Quoted 3 lines
Quoted 3 lines

+ 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.

Quoted 2 lines

I see there's some ABI improvement work on-going and I think it could be

part of

Quoted 2 lines

the work. If it makes sense to you, I'd like some ACKs.

Quoted 8 lines
Quoted 3 lines

I am for reducing the public ABI as much as possible. How big will the change
be? Is the 'rte_bus_pci.h' used other than './drivers/bus/pci/'?

I don't see big change here. And I am not sure if I understand your second question. The rte_bus_pci.h will still be used by drivers (maybe remove the rte prefix and change the file name).

Quoted 7 lines

The file itself will still be exported in some cases, where the end-user has their own drivers which need to be compiled, so I'd recommend keeping the rte_ prefix. However, I think making all bus APIs internal-only to DPDK is a good idea.

#6 lore raw
In reply to Bruce Richardson

27/07/2021 10:44, Bruce Richardson:

Quoted 24 lines · Chenbo
Quoted 23 lines

From: Yigit, Ferruh <[email protected]>

Quoted 21 lines · Chenbo
Quoted 2 lines

From: dev <[email protected]> On Behalf Of Chenbo Xia

Quoted 1 line

+* pci: To reduce unnecessary ABIs exposed by DPDK bus driver,

"rte_bus_pci.h"

Quoted 1 line
Quoted 1 line

+ will be made internal in 21.11 and macros/data structures/functions

defined

Quoted 3 lines
Quoted 3 lines

+ 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.

Quoted 2 lines

I see there's some ABI improvement work on-going and I think it could be

part of

Quoted 2 lines

the work. If it makes sense to you, I'd like some ACKs.

I am for reducing the public ABI as much as possible. How big will the change
be? Is the 'rte_bus_pci.h' used other than './drivers/bus/pci/'?

Quoted 8 lines
Quoted 4 lines

I don't see big change here. And I am not sure if I understand your second question. The rte_bus_pci.h will still be used by drivers (maybe remove the rte prefix and change the file name).

The file itself will still be exported in some cases, where the end-user has their own drivers which need to be compiled, so I'd recommend keeping the rte_ prefix. However, I think making all bus APIs internal-only to DPDK is a good idea.

I don't understand how it can exported _and_ internal.
And about the rte_ prefix, it should be kept even if it used only in internal drivers because it prevent from namespace clash with other libraries included by the drivers.
As a rule we should always have rte_ prefix for each symbol used outside of its own library.

That said I am OK with the direction of hiding PCI bus API.

Applied, thanks.

#7 lore raw

Hi Thomas,

Quoted 42 lines

-----Original Message-----
From: Thomas Monjalon <[email protected]>
Sent: Sunday, August 1, 2021 4:44 AM
To: Xia, Chenbo <[email protected]>
Cc: [email protected]; Yigit, Ferruh <[email protected]>; [email protected]; [email protected]; [email protected]; Richardson, Bruce <[email protected]>; [email protected]; Ananyev, Konstantin <[email protected]>
Subject: Re: [dpdk-dev] [PATCH] doc: announce removal of ABIs in PCI bus driver

27/07/2021 10:44, Bruce Richardson:

Quoted 7 lines · Chenbo
Quoted 6 lines

From: Yigit, Ferruh <[email protected]>

Quoted 5 lines · Chenbo
Quoted 2 lines

From: dev <[email protected]> On Behalf Of Chenbo Xia

Quoted 1 line

+* pci: To reduce unnecessary ABIs exposed by DPDK bus driver,

"rte_bus_pci.h"

Quoted 1 line
Quoted 1 line

+ will be made internal in 21.11 and macros/data

structures/functions

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

defined

Quoted 1 line
Quoted 1 line

+ in the header will not be considered as ABI anymore. This change

is

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 2 lines
Quoted 2 lines

inspired
+ by the RFC

https://patchwork.dpdk.org/project/dpdk/list/?series=17176.

Quoted 2 lines

I see there's some ABI improvement work on-going and I think it could

be

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

part of

Quoted 2 lines

the work. If it makes sense to you, I'd like some ACKs.

Quoted 8 lines
Quoted 8 lines
Quoted 5 lines

I am for reducing the public ABI as much as possible. How big will the change
be? Is the 'rte_bus_pci.h' used other than './drivers/bus/pci/'?

I don't see big change here. And I am not sure if I understand your second question. The rte_bus_pci.h will still be used by drivers (maybe remove

the

Quoted 8 lines
Quoted 6 lines
Quoted 2 lines

rte prefix and change the file name).

The file itself will still be exported in some cases, where the end-user has their own drivers which need to be compiled, so I'd recommend keeping the rte_ prefix. However, I think making all bus APIs internal-only to DPDK is a good idea.

I don't understand how it can exported _and_ internal.

I think we can use the meson option 'enable_driver_sdk'. The first use case is in lib ethdev for exporting internal APIs for out-of-tree drivers. For pci bus, I think the use case is similar: users who want to build out-of-tree drivers can set the option true to export pci header but the structs/functions are marked internal. Make sense to you?

Thanks,
Chenbo

Quoted 11 lines

And about the rte_ prefix, it should be kept even if it used only in internal drivers because it prevent from namespace clash with other libraries included by the drivers.
As a rule we should always have rte_ prefix for each symbol used outside of its own library.

That said I am OK with the direction of hiding PCI bus API.

Applied, thanks.

#8 lore raw

03/08/2021 03:52, Xia, Chenbo:

Quoted 41 lines

Hi Thomas,

From: Thomas Monjalon <[email protected]>

Quoted 38 lines

27/07/2021 10:44, Bruce Richardson:

Quoted 7 lines · Chenbo
Quoted 6 lines

From: Yigit, Ferruh <[email protected]>

Quoted 5 lines · Chenbo
Quoted 2 lines

From: dev <[email protected]> On Behalf Of Chenbo Xia

Quoted 1 line

+* pci: To reduce unnecessary ABIs exposed by DPDK bus driver,

"rte_bus_pci.h"

Quoted 1 line
Quoted 1 line

+ will be made internal in 21.11 and macros/data

structures/functions

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

defined

Quoted 1 line
Quoted 1 line

+ in the header will not be considered as ABI anymore. This change

is

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 2 lines
Quoted 2 lines

inspired
+ by the RFC

https://patchwork.dpdk.org/project/dpdk/list/?series=17176.

Quoted 2 lines

I see there's some ABI improvement work on-going and I think it could

be

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

part of

Quoted 2 lines

the work. If it makes sense to you, I'd like some ACKs.

Quoted 8 lines
Quoted 8 lines
Quoted 5 lines

I am for reducing the public ABI as much as possible. How big will the change
be? Is the 'rte_bus_pci.h' used other than './drivers/bus/pci/'?

I don't see big change here. And I am not sure if I understand your second question. The rte_bus_pci.h will still be used by drivers (maybe remove

the

Quoted 6 lines
Quoted 2 lines

rte prefix and change the file name).

The file itself will still be exported in some cases, where the end-user has their own drivers which need to be compiled, so I'd recommend keeping the rte_ prefix. However, I think making all bus APIs internal-only to DPDK is a good idea.

Quoted 7 lines
Quoted 1 line

I don't understand how it can exported _and_ internal.

I think we can use the meson option 'enable_driver_sdk'. The first use case is in lib ethdev for exporting internal APIs for out-of-tree drivers. For pci bus, I think the use case is similar: users who want to build out-of-tree drivers can set the option true to export pci header but the structs/functions are marked internal. Make sense to you?

I understand the intent.
You are saying an out-of-tree driver is considered internal. Let's see how it works for real.

Acked-by on v1 1/1
#9 lore raw
In reply to Chenbo Xia
Quoted 14 lines

All ABIs in PCI bus driver, which are defined in rte_buc_pci.h, will be removed and the header will be made internal.

---
 doc/guides/rel_notes/deprecation.rst | 5 +++++
 1 file changed, 5 insertions(+)
doc/guides/rel_notes/deprecation.rst +0 -0
index 9584d6bfd7..b01f46c62e 100644

doc/guides/rel_notes/deprecation.rst Deprecation Notices

Quoted 9 lines
doc/guides/rel_notes/deprecation.rst +5 -1
@@ -147,3 +147,8 @@ Deprecation Notices
 * cmdline: ``cmdline`` structure will be made opaque to hide platform-specific
   content. On Linux and FreeBSD, supported prior to DPDK 20.11,
   original structure will be kept until DPDK 21.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.
--
Quoted 1 line

2.17.1