On Mon, Feb 04, 2019 at 10:20:35PM +0100, Rasmus Villemoes wrote: > linux/tracepoints.h allows individual subsystems to disable their > tracepoints. Add such a knob for xfs. Disabling XFS_TRACEPOINTS > reduces the resident size of xfs.ko by about a third, or ~350 KiB. LOL. :) > $ size /tmp/xfs/{a,b}/xfs.ko > text data bss dec hex filename > 671726 4129 632 676487 a5287 /tmp/xfs/a/xfs.ko > 893192 166737 632 1060561 102ed1 /tmp/xfs/b/xfs.ko > > Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx> > --- > fs/xfs/Kconfig | 9 +++++++++ > fs/xfs/xfs_trace.h | 4 ++++ I think a similar thing ought to apply to fs/xfs/scrub/trace.h, right? More general questions: (a) Do we want to be doing this on a per-subsystem basis? (b) Since xfs_scrub is a separate trace domain, do we want a separate Kconfig item for toggling scrub trace, or is one big one enough? (I can't think of why I'd want one on and the other off.) --D > 2 files changed, 13 insertions(+) > > diff --git a/fs/xfs/Kconfig b/fs/xfs/Kconfig > index 457ac9f97377..d099e6d9f6c5 100644 > --- a/fs/xfs/Kconfig > +++ b/fs/xfs/Kconfig > @@ -141,3 +141,12 @@ config XFS_ASSERT_FATAL > result in warnings. > > This behavior can be modified at runtime via sysfs. > + > +config XFS_TRACEPOINTS > + bool "XFS tracepoints" > + default y > + depends on XFS_FS && TRACEPOINTS > + help > + Say Y here to build XFS with tracepoints. > + > + You can say N here to reduce the size of the kernel image. > diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h > index 6fcc893dfc91..5fb3d5c0483e 100644 > --- a/fs/xfs/xfs_trace.h > +++ b/fs/xfs/xfs_trace.h > @@ -6,6 +6,10 @@ > #undef TRACE_SYSTEM > #define TRACE_SYSTEM xfs > > +#ifndef CONFIG_XFS_TRACEPOINTS > +#define NOTRACE > +#endif > + > #if !defined(_TRACE_XFS_H) || defined(TRACE_HEADER_MULTI_READ) > #define _TRACE_XFS_H > > -- > 2.20.1 >