• Linus Torvalds's avatar
    profiling: attempt to remove per-cpu profile flip buffer · 2accfdb7
    Linus Torvalds authored
    This is the really old legacy kernel profiling code, which has long
    since been obviated by "real profiling" (ie 'prof' and company), and
    mainly remains as a source of syzbot reports.
    
    There are anecdotal reports that people still use it for boot-time
    profiling, but it's unlikely that such use would care about the old NUMA
    optimizations in this code from 2004 (commit ad02973d: "profile: 512x
    Altix timer interrupt livelock fix" in the BK import archive at [1])
    
    So in order to head off future syzbot reports, let's try to simplify
    this code and get rid of the per-cpu profile buffers that are quite a
    large portion of the complexity footprint of this thing (including CPU
    hotplug callbacks etc).
    
    It's unlikely anybody will actually notice, or possibly, as Thomas put
    it: "Only people who indulge in nostalgia will notice :)".
    
    That said, if it turns out that this code is actually actively used by
    somebody, we can always revert this removal.  Thus the "attempt" in the
    summary line.
    
    [ Note: in a small nod to "the profiling code can cause NUMA problems",
      this also removes the "increment the last entry in the profiling array
      on any unknown hits" logic. That would account any program counter in
      a module to that single counter location, and might exacerbate any
      NUMA cacheline bouncing issues ]
    
    Link: https://lore.kernel.org/all/CAHk-=wgs52BxT4Zjmjz8aNvHWKxf5_ThBY4bYL1Y6CTaNL2dTw@mail.gmail.com/
    Link:  https://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git [1]
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    2accfdb7
profile.c 6.16 KB