DPDK patches and discussions
 help / color / mirror / Atom feed
* [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).