1. 17 Jul, 2008 4 commits
    • Ingo Molnar's avatar
      ftrace: do not trace library functions · 2464a609
      Ingo Molnar authored
      make function tracing more robust: do not trace library functions.
      
      We've already got a sizable list of exceptions:
      
       ifdef CONFIG_FTRACE
       # Do not profile string.o, since it may be used in early boot or vdso
       CFLAGS_REMOVE_string.o = -pg
       # Also do not profile any debug utilities
       CFLAGS_REMOVE_spinlock_debug.o = -pg
       CFLAGS_REMOVE_list_debug.o = -pg
       CFLAGS_REMOVE_debugobjects.o = -pg
       CFLAGS_REMOVE_find_next_bit.o = -pg
       CFLAGS_REMOVE_cpumask.o = -pg
       CFLAGS_REMOVE_bitmap.o = -pg
       endif
      
      ... and the pattern has been that random library functionality showed
      up in ftrace's critical path (outside of its recursion check), causing
      hard to debug lockups.
      
      So be a bit defensive about it and exclude all lib/*.o functions by
      default. It's not that they are overly interesting for tracing purposes
      anyway. Specific ones can still be traced, in an opt-in manner.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      2464a609
    • Ingo Molnar's avatar
      ftrace: do not trace scheduler functions · c349e0a0
      Ingo Molnar authored
      do not trace scheduler functions - it's still a bit fragile
      and can lock up with:
      
        http://redhat.com/~mingo/misc/config-Thu_Jul_17_13_34_52_CEST_2008Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      c349e0a0
    • Ingo Molnar's avatar
      ftrace: fix lockup with MAXSMP · 9fa11137
      Ingo Molnar authored
      MAXSMP brings in lots of use of various bitops in smp_processor_id()
      and friends - causing ftrace to lock up during bootup:
      
        calling  anon_inode_init+0x0/0x130
        initcall anon_inode_init+0x0/0x130 returned 0 after 0 msecs
        calling  acpi_event_init+0x0/0x57
        [ hard hang ]
      
      So exclude the bitops facilities from tracing.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      9fa11137
    • Ingo Molnar's avatar
      ftrace: fix merge buglet · 8e9509c8
      Ingo Molnar authored
      -tip testing found a bootup hang here:
      
        initcall anon_inode_init+0x0/0x130 returned 0 after 0 msecs
        calling  acpi_event_init+0x0/0x57
      
      the bootup should have continued with:
      
        initcall acpi_event_init+0x0/0x57 returned 0 after 45 msecs
      
      but it hung hard there instead.
      
      bisection led to this commit:
      
      | commit 5806b81a
      | Merge: d14c8a68... 6712e299...
      | Author: Ingo Molnar <mingo@elte.hu>
      | Date:   Mon Jul 14 16:11:52 2008 +0200
      |     Merge branch 'auto-ftrace-next' into tracing/for-linus
      
      turns out that i made this mistake in the merge:
      
        ifdef CONFIG_FTRACE
        # Do not profile debug utilities
        CFLAGS_REMOVE_tsc_64.o = -pg
        CFLAGS_REMOVE_tsc_32.o = -pg
      
      those two files got unified meanwhile - so the dont-profile annotation
      got lost. The proper rule is:
      
        CFLAGS_REMOVE_tsc.o = -pg
      
      i guess this could have been caught sooner if the CFLAGS_REMOVE* kbuild
      rule aborted the build if it met a target that does not exist anymore?
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      8e9509c8
  2. 16 Jul, 2008 36 commits