Re: [PATCH] sched/core: Export pelt_thermal_tp

From: Phil Auld
Date: Thu Oct 28 2021 - 12:49:05 EST


On Thu, Oct 28, 2021 at 09:22:05AM -0700 Christoph Hellwig wrote:
> On Thu, Oct 28, 2021 at 06:18:55PM +0200, Peter Zijlstra wrote:
> > > > @@ -36,6 +36,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(pelt_rt_tp);
> > > > EXPORT_TRACEPOINT_SYMBOL_GPL(pelt_dl_tp);
> > > > EXPORT_TRACEPOINT_SYMBOL_GPL(pelt_irq_tp);
> > > > EXPORT_TRACEPOINT_SYMBOL_GPL(pelt_se_tp);
> > > > +EXPORT_TRACEPOINT_SYMBOL_GPL(pelt_thermal_tp);
> > > > EXPORT_TRACEPOINT_SYMBOL_GPL(sched_cpu_capacity_tp);
> > > > EXPORT_TRACEPOINT_SYMBOL_GPL(sched_overutilized_tp);
> > > > EXPORT_TRACEPOINT_SYMBOL_GPL(sched_util_est_cfs_tp);
> > >
> > > ... and while we're at it, all these exports are unused and should
> > > be deleted as well.
> >
> > This is my concession wrt tracepoints. Actual tracepoints are ABI,
> > exports are in-kernel interfaces and are explicitly not ABI.
> >
> > This way people can use an external module to get at the tracepoint data
> > without having in-tree tracepoints.
>
> All of this makes no sense at all. These are entirely dead exports.
> If you remove them nothing else changes. Note taht the tracepoints
> do have in-kernel callers, so if people thing of them as an ABI you've
> got your ABI already with or without the exports.
>

Full blown trace _events_ create an ABI. These trace points are not ABI.
But by exporting them they are accesible to little helper modules which
can turn them into trace events which can then by used by trace-cmd and
ftrace etc. That way we can have the tracepoints at the interesting spots
in the code but still have control over them with respect to changes.

See https://github.com/auldp/tracepoints-helpers for an example.

Cheers,
Phil

--