[dpdk-dev] [PATCH] doc: add deprecation notice on timer lib cleanup
anatoly.burakov at intel.com
Thu May 9 11:37:51 CEST 2019
On 09-May-19 10:06 AM, Bruce Richardson wrote:
> On Thu, May 09, 2019 at 09:33:32AM +0100, Burakov, Anatoly wrote:
>> On 09-May-19 8:05 AM, David Marchand wrote:
>>> On Thu, May 9, 2019 at 3:11 AM Stephen Hemminger
>>> <stephen at networkplumber.org <mailto:stephen at networkplumber.org>> wrote:
>>> On Wed, 8 May 2019 17:48:06 -0500
>>> Erik Gabriel Carrillo <erik.g.carrillo at intel.com
>>> <mailto:erik.g.carrillo at intel.com>> wrote:
>>> > Due to an upcoming fix to allow the timer library to safely free its
>>> > allocations during the finalize() call, an ABI change will be
>>> > required. A new lock will be added to the rte_mem_config structure,
>>> > which will be used by the timer library to synchronize init/finalize
>>> > calls among multiple processes.
>>> >  http://patches.dpdk.org/patch/53334/
>>> > Signed-off-by: Erik Gabriel Carrillo <erik.g.carrillo at intel.com
>>> <mailto:erik.g.carrillo at intel.com>>
>>> > ---
>>> > doc/guides/rel_notes/deprecation.rst | 4 ++++
>>> > 1 file changed, 4 insertions(+)
>>> > diff --git a/doc/guides/rel_notes/deprecation.rst
>>> > index b47c8c2..7551383 100644
>>> > --- a/doc/guides/rel_notes/deprecation.rst
>>> > +++ b/doc/guides/rel_notes/deprecation.rst
>>> > @@ -31,6 +31,10 @@ Deprecation Notices
>>> > + ``rte_eal_devargs_type_count``
>>> > +* eal: the ``rte_mem_config`` struct will change to include a
>>> new lock that
>>> > + will allow the timer subsystem to safely release its
>>> allocations at cleanup
>>> > + time. This will result in an ABI break.
>>> > +
>>> > * vfio: removal of ``rte_vfio_dma_map`` and
>>> ``rte_vfio_dma_unmap`` APIs which
>>> > have been replaced with ``rte_dev_dma_map`` and
>>> > functions. The due date for the removal targets DPDK 20.02.
>>> Please go to the effort of making rte_mem_config not part of the
>>> visible ABI.
>>> Then change it.
>> I agree on principle, however this won't solve the issue. It doesn't need to
>> be externally visible, but that's not all of its problems - it's also shared
>> between processes so there's an ABI contract between primary and secondary
>> too. This means that, even if the structure itself is not public, any
>> changes to it will still result in an ABI break. That's the nature of our
>> shared memory.
>> In other words, if your goal is to avoid ABI breaks on changing this
>> structure, making it internal won't help in the slightest.
> Is there an ABI contract between primary and secondary. I always assumed
> that if using secondary processes the requirement (though undocumented) was
> that both had to be linked against the exact same versions of DPDK?
The fact that it's undocumented means we can't assume everyone will do
If the community agrees that primary/secondary processes should always
use the same DPDK version (regardless of static/dynamic builds etc.),
then this problem would probably be solved.
More information about the dev