From: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
To: linux-kernel@vger.kernel.org
Cc: Andrew Morton <akpm@linux-foundation.org>,
Andi Kleen <andi@firstfloor.org>,
Huang Ying <ying.huang@intel.com>, Li Wei <W.Li@Sun.COM>,
Jeff Dike <jdike@addtoit.com>
Subject: [PATCH 0/4] gcov kernel support
Date: Thu, 26 Feb 2009 14:50:51 +0100 [thread overview]
Message-ID: <49A69E3B.9070802@linux.vnet.ibm.com> (raw)
This is a resend of the gcov kernel support patchset (see further
below for an in-depth introduction). Patch base is 2.6.29-rc6.
This version fixes a few problems identified by Li Wei <W.Li@Sun.COM>:
* node->parent is always NULL, causing NULL-pointer dereference in
remove_node()
* unsafe list traversing in reset_write() since remove_node may
affect multiple list_heads
* . and .. in .gcda path strings are not handled correctly
Thanks to Li Wei for reporting these problems and proposing fixes!
Patchset overview:
[PATCH 1/4] kernel: constructor support
[PATCH 2/4] seq_file: add function to write binary data
[PATCH 3/4] gcov: add gcov profiling infrastructure
[PATCH 4/4] gcov: enable GCOV_PROFILE_ALL for x86_64
===
Introduction:
This patch set enables the use of GCC's coverage testing tool gcov [1]
with the Linux kernel. Coverage data of a running kernel is exported
in gcov-compatible format via the "gcov" debugfs directory. To get
coverage data for a specific file, change to the kernel build
directory and use gcov with the -o option as follows (requires root):
# cd /tmp/linux-out
# gcov -o /sys/kernel/debug/gcov/tmp/linux-out/kernel spinlock.c
This will create source code files annotated with execution counts
in the current directory. In addition, graphical gcov front-ends such
as lcov [2] can be used to automate the process of collecting data
for the entire kernel and provide coverage overviews in HTML format.
Known issues:
* some architecture specific problems: the patch has been tested
successfully on s390 and x86, the use of gcov profiling flags
for the entire kernel needs to be tested per architecture before
it can be enabled
* GCC's profiling mechanism together with optimization sometimes
produces skewed data (see [1])
* GCC's profiling code assumes single-threaded execution
* gcov assumes that a program has finished when coverage data is
analyzed
Despite these issues, the data which can be obtained has been proven
to be sufficiently accurate for most practical uses.
History:
Hubertus Franke <frankeh@us.ibm.com> wrote the first version of this
patch around 2002. Since then it has been adapted to new versions of
the kernel and GCC with contributions by several people (see file
kernel/gcov/fs.c, write me if I missed anyone). Due to regular
requests, I rewrote the gcov-kernel patch from scratch so that it
would (hopefully) be fit for inclusion into the upstream kernel.
--
[1] http://gcc.gnu.org/onlinedocs/gcc/Gcov.html
[2] http://ltp.sourceforge.net/coverage/lcov.php
next reply other threads:[~2009-02-26 13:51 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-26 13:50 Peter Oberparleiter [this message]
-- strict thread matches above, loose matches on Subject: below --
2009-06-02 11:43 [PATCH 0/4] gcov kernel support Peter Oberparleiter
2009-05-19 14:24 Peter Oberparleiter
2009-05-12 15:38 Peter Oberparleiter
2009-05-08 15:44 Peter Oberparleiter
2009-05-07 12:45 Peter Oberparleiter
2009-02-03 12:46 Peter Oberparleiter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=49A69E3B.9070802@linux.vnet.ibm.com \
--to=oberpar@linux.vnet.ibm.com \
--cc=W.Li@Sun.COM \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=jdike@addtoit.com \
--cc=linux-kernel@vger.kernel.org \
--cc=ying.huang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).