port: eventdev port api promoted

Message ID 20210909164008.343712-1-rahul.r.shah@intel.com (mailing list archive)
State Rejected, archived
Delegated to: Thomas Monjalon
Headers
Series port: eventdev port api promoted |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-aarch64-compile-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-x86_64-unit-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS

Commit Message

Rahul Shah Sept. 9, 2021, 4:40 p.m. UTC
  rte_port_eventdev_reader_ops, rte_port_eventdev_writer_nodrops_ops,
rte_port_eventdev_writer_ops symbols promoted

Signed-off-by: Rahul Shah <rahul.r.shah@intel.com>
---
 lib/port/version.map | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)
  

Comments

Ray Kinsella Sept. 10, 2021, 7:30 a.m. UTC | #1
On 09/09/2021 17:40, Rahul Shah wrote:
> rte_port_eventdev_reader_ops, rte_port_eventdev_writer_nodrops_ops,
> rte_port_eventdev_writer_ops symbols promoted
> 
> Signed-off-by: Rahul Shah <rahul.r.shah@intel.com>
> ---
>  lib/port/version.map | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
> 

Hi Rahul,

You need to strip the __rte_experimental attribute in the header file also.

Ray K
  
David Marchand Sept. 10, 2021, 7:36 a.m. UTC | #2
On Fri, Sep 10, 2021 at 9:31 AM Kinsella, Ray <mdr@ashroe.eu> wrote:
> On 09/09/2021 17:40, Rahul Shah wrote:
> > rte_port_eventdev_reader_ops, rte_port_eventdev_writer_nodrops_ops,
> > rte_port_eventdev_writer_ops symbols promoted
> >
> > Signed-off-by: Rahul Shah <rahul.r.shah@intel.com>
> > ---
> >  lib/port/version.map | 8 +++-----
> >  1 file changed, 3 insertions(+), 5 deletions(-)
> >
>
> Hi Rahul,
>
> You need to strip the __rte_experimental attribute in the header file also.

That's what I first thought... but those are variables, and there were
not marked in the header.
At least, those symbols must be alphabetically sorted in version.map.


About checking for experimental mark on variables... I had a patch,
but never got it in.
I think we should instead (forbid such exports and|insist on) rework
API / libraries that rely on public variables.
  
Ray Kinsella Sept. 10, 2021, 1:40 p.m. UTC | #3
On 10/09/2021 08:36, David Marchand wrote:
> On Fri, Sep 10, 2021 at 9:31 AM Kinsella, Ray <mdr@ashroe.eu> wrote:
>> On 09/09/2021 17:40, Rahul Shah wrote:
>>> rte_port_eventdev_reader_ops, rte_port_eventdev_writer_nodrops_ops,
>>> rte_port_eventdev_writer_ops symbols promoted
>>>
>>> Signed-off-by: Rahul Shah <rahul.r.shah@intel.com>
>>> ---
>>>  lib/port/version.map | 8 +++-----
>>>  1 file changed, 3 insertions(+), 5 deletions(-)
>>>
>>
>> Hi Rahul,
>>
>> You need to strip the __rte_experimental attribute in the header file also.
> 
> That's what I first thought... but those are variables, and there were
> not marked in the header.

My mistake - should have checked.

> At least, those symbols must be alphabetically sorted in version.map.
> 
> 
> About checking for experimental mark on variables... I had a patch,
> but never got it in.
> I think we should instead (forbid such exports and|insist on) rework
> API / libraries that rely on public variables.
>

I'll pull together a script to identify all the variables in DPDK.
Are you expecting the rework on the port api to be done prior to 21.11?

Ray K
  
Thomas Monjalon Oct. 13, 2021, 12:12 p.m. UTC | #4
+Cc Cristian, the maintainer

10/09/2021 15:40, Kinsella, Ray:
> On 10/09/2021 08:36, David Marchand wrote:
> > On Fri, Sep 10, 2021 at 9:31 AM Kinsella, Ray <mdr@ashroe.eu> wrote:
> >> On 09/09/2021 17:40, Rahul Shah wrote:
> >>> rte_port_eventdev_reader_ops, rte_port_eventdev_writer_nodrops_ops,
> >>> rte_port_eventdev_writer_ops symbols promoted
> >>>
> >>> Signed-off-by: Rahul Shah <rahul.r.shah@intel.com>
> >>> ---
> >>>  lib/port/version.map | 8 +++-----
> >>>  1 file changed, 3 insertions(+), 5 deletions(-)
> >>
> >> Hi Rahul,
> >>
> >> You need to strip the __rte_experimental attribute in the header file also.
> > 
> > That's what I first thought... but those are variables, and there were
> > not marked in the header.
> 
> My mistake - should have checked.
> 
> > At least, those symbols must be alphabetically sorted in version.map.
> > 
> > About checking for experimental mark on variables... I had a patch,
> > but never got it in.
> > I think we should instead (forbid such exports and|insist on) rework
> > API / libraries that rely on public variables.
> 
> I'll pull together a script to identify all the variables in DPDK.
> Are you expecting the rework on the port api to be done prior to 21.11?

Does it mean we should not promote these variables?
  
Ray Kinsella Oct. 20, 2021, 9:55 a.m. UTC | #5
On 13/10/2021 13:12, Thomas Monjalon wrote:
> +Cc Cristian, the maintainer
> 
> 10/09/2021 15:40, Kinsella, Ray:
>> On 10/09/2021 08:36, David Marchand wrote:
>>> On Fri, Sep 10, 2021 at 9:31 AM Kinsella, Ray <mdr@ashroe.eu> wrote:
>>>> On 09/09/2021 17:40, Rahul Shah wrote:
>>>>> rte_port_eventdev_reader_ops, rte_port_eventdev_writer_nodrops_ops,
>>>>> rte_port_eventdev_writer_ops symbols promoted
>>>>>
>>>>> Signed-off-by: Rahul Shah <rahul.r.shah@intel.com>
>>>>> ---
>>>>>   lib/port/version.map | 8 +++-----
>>>>>   1 file changed, 3 insertions(+), 5 deletions(-)
>>>>
>>>> Hi Rahul,
>>>>
>>>> You need to strip the __rte_experimental attribute in the header file also.
>>>
>>> That's what I first thought... but those are variables, and there were
>>> not marked in the header.
>>
>> My mistake - should have checked.
>>
>>> At least, those symbols must be alphabetically sorted in version.map.
>>>
>>> About checking for experimental mark on variables... I had a patch,
>>> but never got it in.
>>> I think we should instead (forbid such exports and|insist on) rework
>>> API / libraries that rely on public variables.
>>
>> I'll pull together a script to identify all the variables in DPDK.
>> Are you expecting the rework on the port api to be done prior to 21.11?
> 
> Does it mean we should not promote these variables?
> 
> 

So the net-net is that variables are almost impossible to version.
Think about maintaining two parallel versions of the same variable, and having to track and reconcile state between them.

So variables are make ABI versioning (and maintenance) harder, and are best avoided.

In this particular case.
I would suggest leaving these as experimental and improving the API, post 21.11.

Ray K
  

Patch

diff --git a/lib/port/version.map b/lib/port/version.map
index 73d0825d2e..c4cd40f279 100644
--- a/lib/port/version.map
+++ b/lib/port/version.map
@@ -27,6 +27,9 @@  DPDK_22 {
 	rte_port_sym_crypto_reader_ops;
 	rte_port_sym_crypto_writer_nodrop_ops;
 	rte_port_sym_crypto_writer_ops;
+	rte_port_eventdev_reader_ops;
+	rte_port_eventdev_writer_nodrop_ops;
+	rte_port_eventdev_writer_ops;
 
 	local: *;
 };
@@ -34,11 +37,6 @@  DPDK_22 {
 EXPERIMENTAL {
 	global:
 
-	# added in 19.11
-	rte_port_eventdev_reader_ops;
-	rte_port_eventdev_writer_nodrop_ops;
-	rte_port_eventdev_writer_ops;
-
 	# added in 20.11
 	rte_swx_port_ethdev_reader_ops;
 	rte_swx_port_ethdev_writer_ops;