09/05/2019 11:37, Burakov, Anatoly:
> 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
> >>> <step...@networkplumber.org <mailto:step...@networkplumber.org>> wrote:
> >>>
> >>>      On Wed,  8 May 2019 17:48:06 -0500
> >>>      Erik Gabriel Carrillo <erik.g.carri...@intel.com
> >>>      <mailto:erik.g.carri...@intel.com>> wrote:
> >>>
> >>>       > Due to an upcoming fix to allow the timer library to safely free 
> >>> its
> >>>       > allocations during the finalize() call[1], 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.
> >>>       >
> >>>       > [1] http://patches.dpdk.org/patch/53334/
> >>>       >
> >>>       > Signed-off-by: Erik Gabriel Carrillo <erik.g.carri...@intel.com
> >>>      <mailto:erik.g.carri...@intel.com>>
> >>>       > ---
> >>>       >  doc/guides/rel_notes/deprecation.rst | 4 ++++
> >>>       >  1 file changed, 4 insertions(+)
> >>>       >
> >>>       > diff --git a/doc/guides/rel_notes/deprecation.rst
> >>>      b/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
> >>>      ``rte_dev_dma_unmap``
> >>>       >    functions.  The due date for the removal targets DPDK 20.02.
> >>>
> >>>      NAK
> >>>
> >>>      Please go to the effort of making rte_mem_config not part of the
> >>>      visible ABI.
> >>>      Then change it.
> >>>
> >>>
> >>> +1.
> >>
> >> 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 
> that :)
> 
> 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.

+1 to document that primary/secondary with different DPDK versions
is not supported.


Reply via email to