Re: [PATCH v2 2/2] fs: super.c: Add tracepoint to get name of superblock shrinker

From: Rik van Riel
Date: Thu Aug 18 2016 - 09:22:51 EST


On Thu, 2016-08-18 at 07:32 +0100, Al Viro wrote:
> On Thu, Aug 18, 2016 at 02:09:31AM -0400, Janani Ravichandran wrote:
>
> > Âstatic LIST_HEAD(super_blocks);
> > @@ -64,6 +65,7 @@ static unsigned long super_cache_scan(struct
> > shrinker *shrink,
> > Â long inodes;
> > Â
> > Â sb = container_of(shrink, struct super_block, s_shrink);
> > + trace_mm_shrinker_callback(shrink, sb->s_type->name);
>
> IOW, we are (should that patch be accepted) obliged to keep the
> function in
> question and the guts of struct shrinker indefinitely.
>
> NAK.ÂÂKeep your debugging patches in your tree and maintain them
> yourself.
> And if a change in the kernel data structures breaks them (and your
> userland
> code relying on those), it's your problem.
>
> Tracepoints are very nice for local debugging/data collection/etc.
> patches.
>

The issue is that production systems often need
debugging, and when there are performance issues
we need some way to gather all the necessary info,
without rebooting the production system into a
special debug kernel.

This is not an ABI that userspace can rely on,
and should not be considered as such. Any
performance tracing/debugging scripts can be
easily changed to match the kernel running on
the system in question.