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

Gaëtan Rivet grive at u256.net
Fri Apr 23 13:39:00 CEST 2021


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.

The only potential risk is in using a new version librte_eal.so with an older librte_bus_xxx.so
But I think it is fair to expect installations to be internally consistent.

Maybe we could have a runtime warning when loading mismatched versions
(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?

-- 
Gaetan Rivet


More information about the dev mailing list