[dpdk-dev] [PATCH v5 0/5] eal: enable global device syntax by default

Kinsella, Ray mdr at ashroe.eu
Fri Apr 23 14:35:47 CEST 2021



On 23/04/2021 12:39, Gaëtan Rivet wrote:
> On Fri, Apr 23, 2021, at 13:06, Kinsella, Ray wrote:
>>
>>
>> On 14/04/2021 20:49, Thomas Monjalon wrote:
>>> 13/04/2021 05:14, Xueming Li:
>>>> Xueming Li (5):
>>>>   devargs: unify scratch buffer storage
>>>>   devargs: fix memory leak on parsing error
>>>>   kvargs: add get by key function
>>>>   bus: add device arguments name parsing API
>>>>   devargs: parse global device syntax
>>>
>>> The patch 4 adds a new callback in rte_bus.
>>> I thought about it during the whole day and I don't see any good way
>>> to merge it without breaking the ABI compatibility.
>>>
>>> Only first 3 patches are applied for now, thanks.
>>>
>>
>> I took a look, I don't immediately see the concern.
>>
>> The new entry is at the end of the memory structure.
>> The call back is internal and hidden behind the symbol rte_devargs_layers_parse.
>>
>> So will only be trigger by a rte_devargs_layers_parse of the same 
>> version of DPDK that introduce the new callback.
>>
>> Should be fine?
>>
> 
> It might have been an issue IMO with a structure exposed as an array, i.e. rte_eth_devices[].
> But I thought this kind of ABI break was the kind that would be accepted between two LTS.

Very much depends on how it is done. 
New fields are ok in some circumstances, at first glance I thought one is ok. 
 
> The only potential risk is in using a new version librte_eal.so with an older librte_bus_xxx.so

We don't account for or consider that, that would be an irrational environmnet. 

> But I think it is fair to expect installations to be internally consistent.
> 
> Maybe we could have a runtime warning when loading mismatched versions

Nope - that would be insanely complex. 

> (if there isn't one already) -- each librte_*.so could have an internal version stamp and alignment could
> be checked through a constructor in each lib?
> 


More information about the dev mailing list