[dpdk-dev] [PATCH v10 05/27] eal: introduce dtor macros
Gaëtan Rivet
gaetan.rivet at 6wind.com
Tue Jul 10 14:56:25 CEST 2018
Hi Thomas,
On Tue, Jul 10, 2018 at 01:40:01PM +0200, Thomas Monjalon wrote:
> 05/07/2018 13:48, Gaetan Rivet:
> > Signed-off-by: Gaetan Rivet <gaetan.rivet at 6wind.com>
>
> Please justify why you need destructors, by providing a commit log.
>
> > --- a/lib/librte_eal/common/include/rte_common.h
> > +++ b/lib/librte_eal/common/include/rte_common.h
> > @@ -111,6 +111,29 @@ static void __attribute__((constructor(RTE_PRIO(prio)), used)) func(void)
> > #define RTE_INIT(func) \
> > RTE_INIT_PRIO(func, LAST)
> >
> > +/**
> > + * Run after main() with low priority.
> > + *
> > + * @param func
> > + * Destructor function name.
> > + * @param prio
> > + * Priority number must be above 100.
> > + * Lowest number is the last to run.
> > + */
> > +#define RTE_FINI_PRIO(func, prio) \
> > +static void __attribute__((destructor(RTE_PRIO(prio)), used)) func(void)
>
> I don't like the name of this macro.
> What about RTE_CLEAN_PRIO?
>
>
FINI is symmetrical to INIT in referencing the related ELF section.
RTE_CLEAN presumes that the intended purpose of the function will be to
cleanup resources. As far as we are concerned, this code could send a
signal, dump config info or format / (which would be a pretty advanced
cleanup, granted).
Sometimes, it could be used to release resources, presumably.
I'm not a fan of FINI either, but I appreciate the symmetry.
It's pretty neutral about what it does, as its meaning is literally
"The following function will be part of the .fini section".
Alternatives:
FINALIZE
UNINIT
But they have the same issue as RTE_CLEAN, IMO.
--
Gaëtan Rivet
6WIND
More information about the dev
mailing list