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.