* [dpdk-dev] doc: deprecation notice for ethdev ops?
@ 2017-02-13 16:02 Dumitrescu, Cristian
2017-02-13 16:09 ` Thomas Monjalon
0 siblings, 1 reply; 7+ messages in thread
From: Dumitrescu, Cristian @ 2017-02-13 16:02 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev, Richardson, Bruce, Yigit, Ferruh, Wiles, Keith
Hi Thomas,
When a new member (function pointer) is added to struct eth_dev_ops (as the last member), does it need to go through ABI chance process (e.g. chance notice one release before)?
IMO the answer is no: struct eth_dev_ops is marked as internal and its instances are only accessed through pointers, so the rte_eth_devices array should not be impacted by the ops structure expanding at its end. Unless there is something that I am missing?
My question is in the context of this patch under review for 17.5 release: http://www.dpdk.org/ml/archives/dev/2017-February/057367.html.
Thanks,
Cristian
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] doc: deprecation notice for ethdev ops?
2017-02-13 16:02 [dpdk-dev] doc: deprecation notice for ethdev ops? Dumitrescu, Cristian
@ 2017-02-13 16:09 ` Thomas Monjalon
2017-02-13 16:46 ` Ferruh Yigit
0 siblings, 1 reply; 7+ messages in thread
From: Thomas Monjalon @ 2017-02-13 16:09 UTC (permalink / raw)
To: Dumitrescu, Cristian; +Cc: dev, Richardson, Bruce, Yigit, Ferruh, Wiles, Keith
2017-02-13 16:02, Dumitrescu, Cristian:
> Hi Thomas,
>
> When a new member (function pointer) is added to struct eth_dev_ops (as the last member), does it need to go through ABI chance process (e.g. chance notice one release before)?
>
> IMO the answer is no: struct eth_dev_ops is marked as internal and its instances are only accessed through pointers, so the rte_eth_devices array should not be impacted by the ops structure expanding at its end. Unless there is something that I am missing?
You are right, it is an internal struct.
So no need of a deprecation notice.
We must clearly separate API and internal code in ethdev.
> My question is in the context of this patch under review for 17.5 release: http://www.dpdk.org/ml/archives/dev/2017-February/057367.html.
I did not look at it yet. Will do after the release.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] doc: deprecation notice for ethdev ops?
2017-02-13 16:09 ` Thomas Monjalon
@ 2017-02-13 16:46 ` Ferruh Yigit
2017-02-13 17:21 ` Dumitrescu, Cristian
2017-02-13 17:38 ` Thomas Monjalon
0 siblings, 2 replies; 7+ messages in thread
From: Ferruh Yigit @ 2017-02-13 16:46 UTC (permalink / raw)
To: Thomas Monjalon, Dumitrescu, Cristian
Cc: dev, Richardson, Bruce, Wiles, Keith
On 2/13/2017 4:09 PM, Thomas Monjalon wrote:
> 2017-02-13 16:02, Dumitrescu, Cristian:
>> Hi Thomas,
>>
>> When a new member (function pointer) is added to struct eth_dev_ops (as the last member), does it need to go through ABI chance process (e.g. chance notice one release before)?
>>
>> IMO the answer is no: struct eth_dev_ops is marked as internal and its instances are only accessed through pointers, so the rte_eth_devices array should not be impacted by the ops structure expanding at its end. Unless there is something that I am missing?
>
> You are right, it is an internal struct.
> So no need of a deprecation notice.
When dpdk compiled as dynamic library, application will load PMDs
dynamically as plugin.
Is this use case cause ABI compatibility issue?
I think drivers <--> libraries interface can cause ABI breakages for
dynamic library case, although not sure how common use case this is.
>
> We must clearly separate API and internal code in ethdev.
>
>> My question is in the context of this patch under review for 17.5 release: http://www.dpdk.org/ml/archives/dev/2017-February/057367.html.
>
> I did not look at it yet. Will do after the release.
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] doc: deprecation notice for ethdev ops?
2017-02-13 16:46 ` Ferruh Yigit
@ 2017-02-13 17:21 ` Dumitrescu, Cristian
2017-02-13 17:36 ` Ferruh Yigit
2017-02-13 17:38 ` Thomas Monjalon
1 sibling, 1 reply; 7+ messages in thread
From: Dumitrescu, Cristian @ 2017-02-13 17:21 UTC (permalink / raw)
To: Yigit, Ferruh, Thomas Monjalon; +Cc: dev, Richardson, Bruce, Wiles, Keith
> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Monday, February 13, 2017 4:46 PM
> To: Thomas Monjalon <thomas.monjalon@6wind.com>; Dumitrescu, Cristian
> <cristian.dumitrescu@intel.com>
> Cc: dev@dpdk.org; Richardson, Bruce <bruce.richardson@intel.com>; Wiles,
> Keith <keith.wiles@intel.com>
> Subject: Re: [dpdk-dev] doc: deprecation notice for ethdev ops?
>
> On 2/13/2017 4:09 PM, Thomas Monjalon wrote:
> > 2017-02-13 16:02, Dumitrescu, Cristian:
> >> Hi Thomas,
> >>
> >> When a new member (function pointer) is added to struct eth_dev_ops
> (as the last member), does it need to go through ABI chance process (e.g.
> chance notice one release before)?
> >>
> >> IMO the answer is no: struct eth_dev_ops is marked as internal and its
> instances are only accessed through pointers, so the rte_eth_devices array
> should not be impacted by the ops structure expanding at its end. Unless
> there is something that I am missing?
> >
> > You are right, it is an internal struct.
> > So no need of a deprecation notice.
>
> When dpdk compiled as dynamic library, application will load PMDs
> dynamically as plugin.
> Is this use case cause ABI compatibility issue?
>
> I think drivers <--> libraries interface can cause ABI breakages for
> dynamic library case, although not sure how common use case this is.
>
Do you have a specific example that might cause an issue when adding a new function at the end of the ethdev ops structure? I cannot think of any, given that the ops structure is marked as internal and it is only accessed through pointers.
>
> >
> > We must clearly separate API and internal code in ethdev.
> >
> >> My question is in the context of this patch under review for 17.5 release:
> http://www.dpdk.org/ml/archives/dev/2017-February/057367.html.
> >
> > I did not look at it yet. Will do after the release.
> >
> >
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] doc: deprecation notice for ethdev ops?
2017-02-13 17:21 ` Dumitrescu, Cristian
@ 2017-02-13 17:36 ` Ferruh Yigit
2017-02-13 17:39 ` Thomas Monjalon
0 siblings, 1 reply; 7+ messages in thread
From: Ferruh Yigit @ 2017-02-13 17:36 UTC (permalink / raw)
To: Dumitrescu, Cristian, Thomas Monjalon
Cc: dev, Richardson, Bruce, Wiles, Keith
On 2/13/2017 5:21 PM, Dumitrescu, Cristian wrote:
>
>
>> -----Original Message-----
>> From: Yigit, Ferruh
>> Sent: Monday, February 13, 2017 4:46 PM
>> To: Thomas Monjalon <thomas.monjalon@6wind.com>; Dumitrescu, Cristian
>> <cristian.dumitrescu@intel.com>
>> Cc: dev@dpdk.org; Richardson, Bruce <bruce.richardson@intel.com>; Wiles,
>> Keith <keith.wiles@intel.com>
>> Subject: Re: [dpdk-dev] doc: deprecation notice for ethdev ops?
>>
>> On 2/13/2017 4:09 PM, Thomas Monjalon wrote:
>>> 2017-02-13 16:02, Dumitrescu, Cristian:
>>>> Hi Thomas,
>>>>
>>>> When a new member (function pointer) is added to struct eth_dev_ops
>> (as the last member), does it need to go through ABI chance process (e.g.
>> chance notice one release before)?
>>>>
>>>> IMO the answer is no: struct eth_dev_ops is marked as internal and its
>> instances are only accessed through pointers, so the rte_eth_devices array
>> should not be impacted by the ops structure expanding at its end. Unless
>> there is something that I am missing?
>>>
>>> You are right, it is an internal struct.
>>> So no need of a deprecation notice.
>>
>> When dpdk compiled as dynamic library, application will load PMDs
>> dynamically as plugin.
>> Is this use case cause ABI compatibility issue?
>>
>> I think drivers <--> libraries interface can cause ABI breakages for
>> dynamic library case, although not sure how common use case this is.
>>
>
> Do you have a specific example that might cause an issue when adding a new function at the end of the ethdev ops structure? I cannot think of any, given that the ops structure is marked as internal and it is only accessed through pointers.
Adding at the end of the struct is probably safe.
>
>>
>>>
>>> We must clearly separate API and internal code in ethdev.
>>>
>>>> My question is in the context of this patch under review for 17.5 release:
>> http://www.dpdk.org/ml/archives/dev/2017-February/057367.html.
>>>
>>> I did not look at it yet. Will do after the release.
>>>
>>>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] doc: deprecation notice for ethdev ops?
2017-02-13 16:46 ` Ferruh Yigit
2017-02-13 17:21 ` Dumitrescu, Cristian
@ 2017-02-13 17:38 ` Thomas Monjalon
1 sibling, 0 replies; 7+ messages in thread
From: Thomas Monjalon @ 2017-02-13 17:38 UTC (permalink / raw)
To: Ferruh Yigit; +Cc: Dumitrescu, Cristian, dev, Richardson, Bruce, Wiles, Keith
2017-02-13 16:46, Ferruh Yigit:
> On 2/13/2017 4:09 PM, Thomas Monjalon wrote:
> > 2017-02-13 16:02, Dumitrescu, Cristian:
> >> Hi Thomas,
> >>
> >> When a new member (function pointer) is added to struct eth_dev_ops (as the last member), does it need to go through ABI chance process (e.g. chance notice one release before)?
> >>
> >> IMO the answer is no: struct eth_dev_ops is marked as internal and its instances are only accessed through pointers, so the rte_eth_devices array should not be impacted by the ops structure expanding at its end. Unless there is something that I am missing?
> >
> > You are right, it is an internal struct.
> > So no need of a deprecation notice.
>
> When dpdk compiled as dynamic library, application will load PMDs
> dynamically as plugin.
> Is this use case cause ABI compatibility issue?
>
> I think drivers <--> libraries interface can cause ABI breakages for
> dynamic library case, although not sure how common use case this is.
Yes it is a problem for drivers/library interface.
It is not an ABI, which is an application/library interface.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] doc: deprecation notice for ethdev ops?
2017-02-13 17:36 ` Ferruh Yigit
@ 2017-02-13 17:39 ` Thomas Monjalon
0 siblings, 0 replies; 7+ messages in thread
From: Thomas Monjalon @ 2017-02-13 17:39 UTC (permalink / raw)
To: Dumitrescu, Cristian; +Cc: Ferruh Yigit, dev, Richardson, Bruce, Wiles, Keith
2017-02-13 17:36, Ferruh Yigit:
> On 2/13/2017 5:21 PM, Dumitrescu, Cristian wrote:
> > Do you have a specific example that might cause an issue when adding a new function at the end of the ethdev ops structure? I cannot think of any, given that the ops structure is marked as internal and it is only accessed through pointers.
>
> Adding at the end of the struct is probably safe.
There is no guarantee in DPDK for drivers interface compatibility.
You can add your op anywhere relevant in the structure.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-02-13 17:39 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-13 16:02 [dpdk-dev] doc: deprecation notice for ethdev ops? Dumitrescu, Cristian
2017-02-13 16:09 ` Thomas Monjalon
2017-02-13 16:46 ` Ferruh Yigit
2017-02-13 17:21 ` Dumitrescu, Cristian
2017-02-13 17:36 ` Ferruh Yigit
2017-02-13 17:39 ` Thomas Monjalon
2017-02-13 17:38 ` 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).