summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Corbet <corbet@lwn.net>2016-08-07 17:13:00 -0400
committerJonathan Corbet <corbet@lwn.net>2016-08-18 19:41:27 -0400
commit758f726e7f7c5a09d8627e6e6ad914e568b31a5c (patch)
tree9a2c1a7b211ab46de6f93ab15ded3a5bd5ba15fa
parentd228af5bcb60fda50f8b3a100c0539c4994df040 (diff)
docs: sphinxify kcov.txt and move to dev-tools
Another document added to the dev-tools collection. Cc: Dmitry Vyukov <dvyukov@google.com> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
-rw-r--r--Documentation/dev-tools/kcov.rst (renamed from Documentation/kcov.txt)84
-rw-r--r--Documentation/dev-tools/tools.rst1
2 files changed, 43 insertions, 42 deletions
diff --git a/Documentation/kcov.txt b/Documentation/dev-tools/kcov.rst
index 779ff4ab1c1d..aca0e27ca197 100644
--- a/Documentation/kcov.txt
+++ b/Documentation/dev-tools/kcov.rst
@@ -12,38 +12,38 @@ To achieve this goal it does not collect coverage in soft/hard interrupts
12and instrumentation of some inherently non-deterministic parts of kernel is 12and instrumentation of some inherently non-deterministic parts of kernel is
13disbled (e.g. scheduler, locking). 13disbled (e.g. scheduler, locking).
14 14
15Usage: 15Usage
16====== 16-----
17 17
18Configure kernel with: 18Configure the kernel with::
19 19
20 CONFIG_KCOV=y 20 CONFIG_KCOV=y
21 21
22CONFIG_KCOV requires gcc built on revision 231296 or later. 22CONFIG_KCOV requires gcc built on revision 231296 or later.
23Profiling data will only become accessible once debugfs has been mounted: 23Profiling data will only become accessible once debugfs has been mounted::
24 24
25 mount -t debugfs none /sys/kernel/debug 25 mount -t debugfs none /sys/kernel/debug
26 26
27The following program demonstrates kcov usage from within a test program: 27The following program demonstrates kcov usage from within a test program::
28 28
29#include <stdio.h> 29 #include <stdio.h>
30#include <stddef.h> 30 #include <stddef.h>
31#include <stdint.h> 31 #include <stdint.h>
32#include <stdlib.h> 32 #include <stdlib.h>
33#include <sys/types.h> 33 #include <sys/types.h>
34#include <sys/stat.h> 34 #include <sys/stat.h>
35#include <sys/ioctl.h> 35 #include <sys/ioctl.h>
36#include <sys/mman.h> 36 #include <sys/mman.h>
37#include <unistd.h> 37 #include <unistd.h>
38#include <fcntl.h> 38 #include <fcntl.h>
39 39
40#define KCOV_INIT_TRACE _IOR('c', 1, unsigned long) 40 #define KCOV_INIT_TRACE _IOR('c', 1, unsigned long)
41#define KCOV_ENABLE _IO('c', 100) 41 #define KCOV_ENABLE _IO('c', 100)
42#define KCOV_DISABLE _IO('c', 101) 42 #define KCOV_DISABLE _IO('c', 101)
43#define COVER_SIZE (64<<10) 43 #define COVER_SIZE (64<<10)
44 44
45int main(int argc, char **argv) 45 int main(int argc, char **argv)
46{ 46 {
47 int fd; 47 int fd;
48 unsigned long *cover, n, i; 48 unsigned long *cover, n, i;
49 49
@@ -83,24 +83,24 @@ int main(int argc, char **argv)
83 if (close(fd)) 83 if (close(fd))
84 perror("close"), exit(1); 84 perror("close"), exit(1);
85 return 0; 85 return 0;
86} 86 }
87 87
88After piping through addr2line output of the program looks as follows: 88After piping through addr2line output of the program looks as follows::
89 89
90SyS_read 90 SyS_read
91fs/read_write.c:562 91 fs/read_write.c:562
92__fdget_pos 92 __fdget_pos
93fs/file.c:774 93 fs/file.c:774
94__fget_light 94 __fget_light
95fs/file.c:746 95 fs/file.c:746
96__fget_light 96 __fget_light
97fs/file.c:750 97 fs/file.c:750
98__fget_light 98 __fget_light
99fs/file.c:760 99 fs/file.c:760
100__fdget_pos 100 __fdget_pos
101fs/file.c:784 101 fs/file.c:784
102SyS_read 102 SyS_read
103fs/read_write.c:562 103 fs/read_write.c:562
104 104
105If a program needs to collect coverage from several threads (independently), 105If a program needs to collect coverage from several threads (independently),
106it needs to open /sys/kernel/debug/kcov in each thread separately. 106it needs to open /sys/kernel/debug/kcov in each thread separately.
diff --git a/Documentation/dev-tools/tools.rst b/Documentation/dev-tools/tools.rst
index d4bbda319e79..9dcd0236a1ff 100644
--- a/Documentation/dev-tools/tools.rst
+++ b/Documentation/dev-tools/tools.rst
@@ -16,3 +16,4 @@ whole; patches welcome!
16 16
17 coccinelle 17 coccinelle
18 sparse 18 sparse
19 kcov