• P
    gcov: add gcov profiling infrastructure · 2521f2c2
    Peter Oberparleiter 提交于
    Enable the use of GCC's coverage testing tool gcov [1] with the Linux
    kernel.  gcov may be useful for:
    
     * debugging (has this code been reached at all?)
     * test improvement (how do I change my test to cover these lines?)
     * minimizing kernel configurations (do I need this option if the
       associated code is never run?)
    
    The profiling patch incorporates the following changes:
    
     * change kbuild to include profiling flags
     * provide functions needed by profiling code
     * present profiling data as files in debugfs
    
    Note that on some architectures, enabling gcc's profiling option
    "-fprofile-arcs" for the entire kernel may trigger compile/link/
    run-time problems, some of which are caused by toolchain bugs and
    others which require adjustment of architecture code.
    
    For this reason profiling the entire kernel is initially restricted
    to those architectures for which it is known to work without changes.
    This restriction can be lifted once an architecture has been tested
    and found compatible with gcc's profiling. Profiling of single files
    or directories is still available on all platforms (see config help
    text).
    
    [1] http://gcc.gnu.org/onlinedocs/gcc/Gcov.htmlSigned-off-by: NPeter Oberparleiter <oberpar@linux.vnet.ibm.com>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: Huang Ying <ying.huang@intel.com>
    Cc: Li Wei <W.Li@Sun.COM>
    Cc: Michael Ellerman <michaele@au1.ibm.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Heiko Carstens <heicars2@linux.vnet.ibm.com>
    Cc: Martin Schwidefsky <mschwid2@linux.vnet.ibm.com>
    Cc: Rusty Russell <rusty@rustcorp.com.au>
    Cc: WANG Cong <xiyou.wangcong@gmail.com>
    Cc: Sam Ravnborg <sam@ravnborg.org>
    Cc: Jeff Dike <jdike@addtoit.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    2521f2c2
Makefile 53.8 KB