• Ingo Molnar's avatar
    compiler.h: Move instrumentation_begin()/end() to new <linux/instrumentation.h> header · d19e789f
    Ingo Molnar authored
    Linus pointed out that compiler.h - which is a key header that gets included in every
    single one of the 28,000+ kernel files during a kernel build - was bloated in:
    
      65538966: ("vmlinux.lds.h: Create section for protection against instrumentation")
    
    Linus noted:
    
     > I have pulled this, but do we really want to add this to a header file
     > that is _so_ core that it gets included for basically every single
     > file built?
     >
     > I don't even see those instrumentation_begin/end() things used
     > anywhere right now.
     >
     > It seems excessive. That 53 lines is maybe not a lot, but it pushed
     > that header file to over 12kB, and while it's mostly comments, it's
     > extra IO and parsing basically for _every_ single file compiled in the
     > kernel.
     >
     > For what appears to be absolutely zero upside right now, and I really
     > don't see why this should be in such a core header file!
    
    Move these primitives into a new header: <linux/instrumentation.h>, and include that
    header in the headers that make use of it.
    
    Unfortunately one of these headers is asm-generic/bug.h, which does get included
    in a lot of places, similarly to compiler.h. So the de-bloating effect isn't as
    good as we'd like it to be - but at least the interfaces are defined separately.
    
    No change to functionality intended.
    Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    Link: https://lore.kernel.org/r/20200604071921.GA1361070@gmail.com
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    d19e789f
bug.h 6.75 KB