Re: [PATCH] sched/core: Export pelt_thermal_tp

From: Peter Zijlstra
Date: Thu Oct 28 2021 - 12:50:57 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.

These are not normal traceevents, these are tracepoints, the distinction
is that these things do not show up in tracefs and there is no userspace
visible representation of them. No userspace gives no ABI.

All they provide is the in-code hook and in-kernel registration
interface. These EXPORTS export that registration interface, such that
an out-of-tree module can make use of them.

And yes, unused exports are iffy, out-of-tree modules are iffy, but in
this case I made an exception since ABI contraints are worse. We very
clearly state there is no such thing is kabi, so breaking any user of
these exports if fair game.

Breaking users of userspace trace-events gets kernel patches reverted
(been there, done that, never want to ever be there again).

People want to trace this stuff, but I *REALLY* do not want to commit to
ABI, this is the middle-ground that sucks least :/