On Mon, 11 Jul 2022 23:15:26 +0200 Thomas Monjalon <tho...@monjalon.net> wrote:
> 05/07/2022 22:44, Stephen Hemminger: > > The DPDK is not designed to be used from a signal handler. > > Add a notice in the documentation describing this limitation, > > similar to Linux signal-safety manual page. > > > > Bugzilla ID: 1030 > > Signed-off-by: Stephen Hemminger <step...@networkplumber.org> > > Acked-by: Tyler Retzlaff <roret...@linux.microsoft.com> > > Acked-by: Chengwen Feng <fengcheng...@huawei.com> > > --- > > doc/guides/prog_guide/env_abstraction_layer.rst | 15 +++++++++++++++ > > 1 file changed, 15 insertions(+) > > > > diff --git a/doc/guides/prog_guide/env_abstraction_layer.rst > > b/doc/guides/prog_guide/env_abstraction_layer.rst > > index 67842ae27207..de7ee92bba39 100644 > > --- a/doc/guides/prog_guide/env_abstraction_layer.rst > > +++ b/doc/guides/prog_guide/env_abstraction_layer.rst > > @@ -818,6 +818,21 @@ Known Issues > > > > The debug statistics of rte_ring, rte_mempool and rte_timer are not > > supported in an unregistered non-EAL pthread. > > > > ++ signal safety > > + > > + The DPDK library is not designed to be async-signal-safe. > > + Except where explicitly stated otherwise [#]_, the DPDK functions are > > nonreentrant and are unsafe to call from a signal handler. > > + > > +.. [#] Only the function ``rte_dump_stack()`` can safely be called from > > signal handler in this version of DPDK. > > Really? Are you sure? > > Note: the use of [#] is probably limited to a single usage in the page? Yes. this is true, please apply this patch. It is not safe to call functions that do any of the following: printf malloc according to Linux async-signal-safe documentation And because these all have locking or equivalent atomic the following in DPDK are unsafe. rte_ring rte_timer rte_spinlock, rte_rwlock, ... any PMD operations