* [PATCH 0/3] add tracepoints docbook (take #2)
@ 2009-04-30 17:29 Jason Baron
2009-04-30 17:29 ` [PATCH 1/3] make kernel-doc understand TRACE_EVENT() macro " Jason Baron
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Jason Baron @ 2009-04-30 17:29 UTC (permalink / raw)
To: mingo
Cc: linux-kernel, akpm, rostedt, fweisbec, mathieu.desnoyers,
randy.dunlap, wcohen
The following patches add a new tracepoint docbook. Since tracepoints can
be defined by various macros and in various files, I think it important
to clearly document the available tracepoints, as Andrew has pointed out.
This helps us see what we have and what we don't have. If this patch is
accepted, I hope that others will add docbook style comments, so we can
have a complete accounting of the kernel's tracepoints.
The docbook from these patch series can be viewed at:
http://people.redhat.com/~jbaron/tracepoints/
thanks,
-Jason
Jason Baron (3):
-make kernel-doc understand TRACE_EVENT() macro
-add new tracepoints docbook
-add irq tracepoint documentation
Documentation/DocBook/Makefile | 3 +-
Documentation/DocBook/tracepoint.tmpl | 89 +++++++++++++++++++++++++++++++++
include/trace/events/irq.h | 46 +++++++++++++++--
scripts/kernel-doc | 22 ++++++++
4 files changed, 155 insertions(+), 5 deletions(-)
create mode 100644 Documentation/DocBook/tracepoint.tmpl
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/3] make kernel-doc understand TRACE_EVENT() macro (take #2)
2009-04-30 17:29 [PATCH 0/3] add tracepoints docbook (take #2) Jason Baron
@ 2009-04-30 17:29 ` Jason Baron
2009-05-01 13:28 ` [tip:tracing/core] kerneldoc, tracing: " tip-bot for Jason Baron
2009-04-30 17:29 ` [PATCH 2/3] add new tracepoints docbook " Jason Baron
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ messages in thread
From: Jason Baron @ 2009-04-30 17:29 UTC (permalink / raw)
To: mingo
Cc: linux-kernel, akpm, rostedt, fweisbec, mathieu.desnoyers,
randy.dunlap, wcohen
Add support to kernel-doc for tracepoint comments above TRACE_EVENT()
macro definitions. Paves the way for tracepoint docbook.
Signed-off-by: Jason Baron <jbaron@redhat.com>
Acked-by: Randy Dunlap <randy.dunlap@oracle.com>
---
scripts/kernel-doc | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index 0f11870..2b53a55 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -1827,6 +1827,25 @@ sub reset_state {
$state = 0;
}
+sub tracepoint_munge($) {
+ my $file = shift;
+ my $tracepointname = 0;
+ my $tracepointargs = 0;
+
+ if($prototype =~ m/TRACE_EVENT\((.*?),/) {
+ $tracepointname = $1;
+ }
+ if($prototype =~ m/TP_PROTO\((.*?)\)/) {
+ $tracepointargs = $1;
+ }
+ if (($tracepointname eq 0) || ($tracepointargs eq 0)) {
+ print STDERR "Warning(${file}:$.): Unrecognized tracepoint format: \n".
+ "$prototype\n";
+ } else {
+ $prototype = "static inline void trace_$tracepointname($tracepointargs)";
+ }
+}
+
sub syscall_munge() {
my $void = 0;
@@ -1881,6 +1900,9 @@ sub process_state3_function($$) {
if ($prototype =~ /SYSCALL_DEFINE/) {
syscall_munge();
}
+ if ($prototype =~ /TRACE_EVENT/) {
+ tracepoint_munge($file);
+ }
dump_function($prototype, $file);
reset_state();
}
--
1.6.0.6
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] add new tracepoints docbook (take #2)
2009-04-30 17:29 [PATCH 0/3] add tracepoints docbook (take #2) Jason Baron
2009-04-30 17:29 ` [PATCH 1/3] make kernel-doc understand TRACE_EVENT() macro " Jason Baron
@ 2009-04-30 17:29 ` Jason Baron
2009-05-01 13:28 ` [tip:tracing/core] tracing: add new tracepoints docbook tip-bot for Jason Baron
2009-04-30 17:29 ` [PATCH 3/3] add irq tracepoint documentation (take #2) Jason Baron
2009-05-01 14:24 ` [PATCH 0/3] add tracepoints docbook (take #2) Jason Baron
3 siblings, 1 reply; 9+ messages in thread
From: Jason Baron @ 2009-04-30 17:29 UTC (permalink / raw)
To: mingo
Cc: linux-kernel, akpm, rostedt, fweisbec, mathieu.desnoyers,
randy.dunlap, wcohen
Add tracepoint docbook. This will help us document and understand
what tracepoints are in the kernel. Since there are multiple
macros, and files that contain tracepoints.
Signed-off-by: Jason Baron <jbaron@redhat.com>
Acked-by: Randy Dunlap <randy.dunlap@oracle.com>
---
Documentation/DocBook/Makefile | 3 +-
Documentation/DocBook/tracepoint.tmpl | 84 +++++++++++++++++++++++++++++++++
2 files changed, 86 insertions(+), 1 deletions(-)
create mode 100644 Documentation/DocBook/tracepoint.tmpl
diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile
index 8918a32..4c8f4d6 100644
--- a/Documentation/DocBook/Makefile
+++ b/Documentation/DocBook/Makefile
@@ -13,7 +13,8 @@ DOCBOOKS := z8530book.xml mcabook.xml device-drivers.xml \
gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \
genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \
mac80211.xml debugobjects.xml sh.xml regulator.xml \
- alsa-driver-api.xml writing-an-alsa-driver.xml
+ alsa-driver-api.xml writing-an-alsa-driver.xml \
+ tracepoint.xml
###
# The build process is as follows (targets):
diff --git a/Documentation/DocBook/tracepoint.tmpl b/Documentation/DocBook/tracepoint.tmpl
new file mode 100644
index 0000000..70891bc
--- /dev/null
+++ b/Documentation/DocBook/tracepoint.tmpl
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>
+
+<book id="Tracepoints">
+ <bookinfo>
+ <title>The Linux Kernel Tracepoint API</title>
+
+ <authorgroup>
+ <author>
+ <firstname>Jason</firstname>
+ <surname>Baron</surname>
+ <affiliation>
+ <address>
+ <email>jbaron@redhat.com</email>
+ </address>
+ </affiliation>
+ </author>
+ </authorgroup>
+
+ <legalnotice>
+ <para>
+ This documentation is free software; you can redistribute
+ it and/or modify it under the terms of the GNU General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later
+ version.
+ </para>
+
+ <para>
+ This program is distributed in the hope that it will be
+ useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
+ </para>
+
+ <para>
+ You should have received a copy of the GNU General Public
+ License along with this program; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ MA 02111-1307 USA
+ </para>
+
+ <para>
+ For more details see the file COPYING in the source
+ distribution of Linux.
+ </para>
+ </legalnotice>
+ </bookinfo>
+
+ <toc></toc>
+ <chapter id="intro">
+ <title>Introduction</title>
+ <para>
+ Tracepoints are static probe points that are located in strategic points
+ throughout the kernel. 'Probes' register/unregister with tracepoints
+ via a callback mechanism. The 'probes' are strictly typed functions that
+ are passed a unique set of parameters defined by each tracepoint.
+ </para>
+
+ <para>
+ From this simple callback mechanism, 'probes' can be used to profile, debug,
+ and understand kernel behavior. There are a number of tools that provide a
+ framework for using 'probes'. These tools include Systemtap, ftrace, and
+ LTTng.
+ </para>
+
+ <para>
+ Tracepoints are defined in a number of header files via various macros. Thus,
+ the purpose of this document is to provide a clear accounting of the available
+ tracepoints. The intention is to understand not only what tracepoints are
+ available but also to understand where future tracepoints might be added.
+ </para>
+
+ <para>
+ The API presented has functions of the form:
+ <function>trace_tracepointname(function parameters)</function>. These are the
+ tracepoints callbacks that are found throughout the code. Registering and
+ unregistering probes with these callback sites is covered in the
+ <filename>Documentation/trace/*</filename> directory.
+ </para>
+ </chapter>
+
+</book>
--
1.6.0.6
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/3] add irq tracepoint documentation (take #2)
2009-04-30 17:29 [PATCH 0/3] add tracepoints docbook (take #2) Jason Baron
2009-04-30 17:29 ` [PATCH 1/3] make kernel-doc understand TRACE_EVENT() macro " Jason Baron
2009-04-30 17:29 ` [PATCH 2/3] add new tracepoints docbook " Jason Baron
@ 2009-04-30 17:29 ` Jason Baron
2009-05-01 13:28 ` [tip:tracing/core] tracing: add irq tracepoint documentation tip-bot for Jason Baron
2009-05-01 14:24 ` [PATCH 0/3] add tracepoints docbook (take #2) Jason Baron
3 siblings, 1 reply; 9+ messages in thread
From: Jason Baron @ 2009-04-30 17:29 UTC (permalink / raw)
To: mingo
Cc: linux-kernel, akpm, rostedt, fweisbec, mathieu.desnoyers,
randy.dunlap, wcohen
Document irqs for the newly created docbook.
Signed-off-by: Jason Baron <jbaron@redhat.com>
Acked-by: Randy Dunlap <randy.dunlap@oracle.com>
---
Documentation/DocBook/tracepoint.tmpl | 5 +++
include/trace/events/irq.h | 46 ++++++++++++++++++++++++++++++---
2 files changed, 47 insertions(+), 4 deletions(-)
diff --git a/Documentation/DocBook/tracepoint.tmpl b/Documentation/DocBook/tracepoint.tmpl
index 70891bc..b0756d0 100644
--- a/Documentation/DocBook/tracepoint.tmpl
+++ b/Documentation/DocBook/tracepoint.tmpl
@@ -81,4 +81,9 @@
</para>
</chapter>
+ <chapter id="irq">
+ <title>IRQ</title>
+!Iinclude/trace/events/irq.h
+ </chapter>
+
</book>
diff --git a/include/trace/events/irq.h b/include/trace/events/irq.h
index 7686864..32a9f7e 100644
--- a/include/trace/events/irq.h
+++ b/include/trace/events/irq.h
@@ -7,8 +7,16 @@
#undef TRACE_SYSTEM
#define TRACE_SYSTEM irq
-/*
- * Tracepoint for entry of interrupt handler:
+/**
+ * irq_handler_entry - called immediately before the irq action handler
+ * @irq: irq number
+ * @action: pointer to struct irqaction
+ *
+ * The struct irqaction pointed to by @action contains various
+ * information about the handler, including the device name,
+ * @action->name, and the device id, @action->dev_id. When used in
+ * conjunction with the irq_handler_exit tracepoint, we can figure
+ * out irq handler latencies.
*/
TRACE_EVENT(irq_handler_entry,
@@ -29,8 +37,16 @@ TRACE_EVENT(irq_handler_entry,
TP_printk("irq=%d handler=%s", __entry->irq, __get_str(name))
);
-/*
- * Tracepoint for return of an interrupt handler:
+/**
+ * irq_handler_exit - called immediately after the irq action handler returns
+ * @irq: irq number
+ * @action: pointer to struct irqaction
+ * @ret: return value
+ *
+ * If the @ret value is set to IRQ_HANDLED, then we know that the corresponding
+ * @action->handler scuccessully handled this irq. Otherwise, the irq might be
+ * a shared irq line, or the irq was not handled successfully. Can be used in
+ * conjunction with the irq_handler_entry to understand irq handler latencies.
*/
TRACE_EVENT(irq_handler_exit,
@@ -52,6 +68,17 @@ TRACE_EVENT(irq_handler_exit,
__entry->irq, __entry->ret ? "handled" : "unhandled")
);
+/**
+ * softirq_entry - called immediately before the softirq handler
+ * @h: pointer to struct softirq_action
+ * @vec: pointer to first struct softirq_action in softirq_vec array
+ *
+ * The @h parameter, contains a pointer to the struct softirq_action
+ * which has a pointer to the action handler that is called. By subtracting
+ * the @vec pointer from the @h pointer, we can determine the softirq
+ * number. Also, when used in combination with the softirq_exit tracepoint
+ * we can determine the softirq latency.
+ */
TRACE_EVENT(softirq_entry,
TP_PROTO(struct softirq_action *h, struct softirq_action *vec),
@@ -71,6 +98,17 @@ TRACE_EVENT(softirq_entry,
TP_printk("softirq=%d action=%s", __entry->vec, __get_str(name))
);
+/**
+ * softirq_exit - called immediately after the softirq handler returns
+ * @h: pointer to struct softirq_action
+ * @vec: pointer to first struct softirq_action in softirq_vec array
+ *
+ * The @h parameter contains a pointer to the struct softirq_action
+ * that has handled the softirq. By subtracting the @vec pointer from
+ * the @h pointer, we can determine the softirq number. Also, when used in
+ * combination with the softirq_entry tracepoint we can determine the softirq
+ * latency.
+ */
TRACE_EVENT(softirq_exit,
TP_PROTO(struct softirq_action *h, struct softirq_action *vec),
--
1.6.0.6
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [tip:tracing/core] kerneldoc, tracing: make kernel-doc understand TRACE_EVENT() macro (take #2)
2009-04-30 17:29 ` [PATCH 1/3] make kernel-doc understand TRACE_EVENT() macro " Jason Baron
@ 2009-05-01 13:28 ` tip-bot for Jason Baron
0 siblings, 0 replies; 9+ messages in thread
From: tip-bot for Jason Baron @ 2009-05-01 13:28 UTC (permalink / raw)
To: linux-tip-commits
Cc: linux-kernel, hpa, mingo, jbaron, tglx, randy.dunlap, mingo
Commit-ID: 56afb0f8823650f53a5f0e96d69a282e8892c61b
Gitweb: http://git.kernel.org/tip/56afb0f8823650f53a5f0e96d69a282e8892c61b
Author: Jason Baron <jbaron@redhat.com>
AuthorDate: Thu, 30 Apr 2009 13:29:36 -0400
Committer: Ingo Molnar <mingo@elte.hu>
CommitDate: Fri, 1 May 2009 14:03:35 +0200
kerneldoc, tracing: make kernel-doc understand TRACE_EVENT() macro (take #2)
Add support to kernel-doc for tracepoint comments above TRACE_EVENT()
macro definitions. Paves the way for tracepoint docbook.
[ Impact: extend DocBook infrastructure ]
Signed-off-by: Jason Baron <jbaron@redhat.com>
Acked-by: Randy Dunlap <randy.dunlap@oracle.com>
Cc: akpm@linux-foundation.org
Cc: rostedt@goodmis.org
Cc: fweisbec@gmail.com
Cc: mathieu.desnoyers@polymtl.ca
Cc: wcohen@redhat.com
LKML-Reference: <d80706b6797e277924d2f3ec9af176c6b2951f88.1241107197.git.jbaron@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
scripts/kernel-doc | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index 0f11870..2b53a55 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -1827,6 +1827,25 @@ sub reset_state {
$state = 0;
}
+sub tracepoint_munge($) {
+ my $file = shift;
+ my $tracepointname = 0;
+ my $tracepointargs = 0;
+
+ if($prototype =~ m/TRACE_EVENT\((.*?),/) {
+ $tracepointname = $1;
+ }
+ if($prototype =~ m/TP_PROTO\((.*?)\)/) {
+ $tracepointargs = $1;
+ }
+ if (($tracepointname eq 0) || ($tracepointargs eq 0)) {
+ print STDERR "Warning(${file}:$.): Unrecognized tracepoint format: \n".
+ "$prototype\n";
+ } else {
+ $prototype = "static inline void trace_$tracepointname($tracepointargs)";
+ }
+}
+
sub syscall_munge() {
my $void = 0;
@@ -1881,6 +1900,9 @@ sub process_state3_function($$) {
if ($prototype =~ /SYSCALL_DEFINE/) {
syscall_munge();
}
+ if ($prototype =~ /TRACE_EVENT/) {
+ tracepoint_munge($file);
+ }
dump_function($prototype, $file);
reset_state();
}
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [tip:tracing/core] tracing: add new tracepoints docbook
2009-04-30 17:29 ` [PATCH 2/3] add new tracepoints docbook " Jason Baron
@ 2009-05-01 13:28 ` tip-bot for Jason Baron
0 siblings, 0 replies; 9+ messages in thread
From: tip-bot for Jason Baron @ 2009-05-01 13:28 UTC (permalink / raw)
To: linux-tip-commits
Cc: linux-kernel, hpa, mingo, jbaron, tglx, randy.dunlap, mingo
Commit-ID: a76f8c6da1e48fd4ef025f42c736389532ff30ba
Gitweb: http://git.kernel.org/tip/a76f8c6da1e48fd4ef025f42c736389532ff30ba
Author: Jason Baron <jbaron@redhat.com>
AuthorDate: Thu, 30 Apr 2009 13:29:42 -0400
Committer: Ingo Molnar <mingo@elte.hu>
CommitDate: Fri, 1 May 2009 14:03:35 +0200
tracing: add new tracepoints docbook
Add tracepoint docbook. This will help us document and understand
what tracepoints are in the kernel. Since there are multiple
macros, and files that contain tracepoints.
[ Impact: add documentation ]
Signed-off-by: Jason Baron <jbaron@redhat.com>
Acked-by: Randy Dunlap <randy.dunlap@oracle.com>
Cc: akpm@linux-foundation.org
Cc: rostedt@goodmis.org
Cc: fweisbec@gmail.com
Cc: mathieu.desnoyers@polymtl.ca
Cc: wcohen@redhat.com
LKML-Reference: <84160b6bd94aff02455da7e12bad054d34c579a0.1241107197.git.jbaron@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
Documentation/DocBook/Makefile | 3 +-
Documentation/DocBook/tracepoint.tmpl | 84 +++++++++++++++++++++++++++++++++
2 files changed, 86 insertions(+), 1 deletions(-)
diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile
index 8918a32..4c8f4d6 100644
--- a/Documentation/DocBook/Makefile
+++ b/Documentation/DocBook/Makefile
@@ -13,7 +13,8 @@ DOCBOOKS := z8530book.xml mcabook.xml device-drivers.xml \
gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \
genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \
mac80211.xml debugobjects.xml sh.xml regulator.xml \
- alsa-driver-api.xml writing-an-alsa-driver.xml
+ alsa-driver-api.xml writing-an-alsa-driver.xml \
+ tracepoint.xml
###
# The build process is as follows (targets):
diff --git a/Documentation/DocBook/tracepoint.tmpl b/Documentation/DocBook/tracepoint.tmpl
new file mode 100644
index 0000000..70891bc
--- /dev/null
+++ b/Documentation/DocBook/tracepoint.tmpl
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>
+
+<book id="Tracepoints">
+ <bookinfo>
+ <title>The Linux Kernel Tracepoint API</title>
+
+ <authorgroup>
+ <author>
+ <firstname>Jason</firstname>
+ <surname>Baron</surname>
+ <affiliation>
+ <address>
+ <email>jbaron@redhat.com</email>
+ </address>
+ </affiliation>
+ </author>
+ </authorgroup>
+
+ <legalnotice>
+ <para>
+ This documentation is free software; you can redistribute
+ it and/or modify it under the terms of the GNU General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later
+ version.
+ </para>
+
+ <para>
+ This program is distributed in the hope that it will be
+ useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
+ </para>
+
+ <para>
+ You should have received a copy of the GNU General Public
+ License along with this program; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ MA 02111-1307 USA
+ </para>
+
+ <para>
+ For more details see the file COPYING in the source
+ distribution of Linux.
+ </para>
+ </legalnotice>
+ </bookinfo>
+
+ <toc></toc>
+ <chapter id="intro">
+ <title>Introduction</title>
+ <para>
+ Tracepoints are static probe points that are located in strategic points
+ throughout the kernel. 'Probes' register/unregister with tracepoints
+ via a callback mechanism. The 'probes' are strictly typed functions that
+ are passed a unique set of parameters defined by each tracepoint.
+ </para>
+
+ <para>
+ From this simple callback mechanism, 'probes' can be used to profile, debug,
+ and understand kernel behavior. There are a number of tools that provide a
+ framework for using 'probes'. These tools include Systemtap, ftrace, and
+ LTTng.
+ </para>
+
+ <para>
+ Tracepoints are defined in a number of header files via various macros. Thus,
+ the purpose of this document is to provide a clear accounting of the available
+ tracepoints. The intention is to understand not only what tracepoints are
+ available but also to understand where future tracepoints might be added.
+ </para>
+
+ <para>
+ The API presented has functions of the form:
+ <function>trace_tracepointname(function parameters)</function>. These are the
+ tracepoints callbacks that are found throughout the code. Registering and
+ unregistering probes with these callback sites is covered in the
+ <filename>Documentation/trace/*</filename> directory.
+ </para>
+ </chapter>
+
+</book>
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [tip:tracing/core] tracing: add irq tracepoint documentation
2009-04-30 17:29 ` [PATCH 3/3] add irq tracepoint documentation (take #2) Jason Baron
@ 2009-05-01 13:28 ` tip-bot for Jason Baron
0 siblings, 0 replies; 9+ messages in thread
From: tip-bot for Jason Baron @ 2009-05-01 13:28 UTC (permalink / raw)
To: linux-tip-commits
Cc: linux-kernel, hpa, mingo, jbaron, tglx, randy.dunlap, mingo
Commit-ID: 9ee1983c9aa18f12388ef660d0c76a23dc112959
Gitweb: http://git.kernel.org/tip/9ee1983c9aa18f12388ef660d0c76a23dc112959
Author: Jason Baron <jbaron@redhat.com>
AuthorDate: Thu, 30 Apr 2009 13:29:47 -0400
Committer: Ingo Molnar <mingo@elte.hu>
CommitDate: Fri, 1 May 2009 14:03:36 +0200
tracing: add irq tracepoint documentation
Document irqs for the newly created docbook.
[ Impact: add documentation ]
Signed-off-by: Jason Baron <jbaron@redhat.com>
Acked-by: Randy Dunlap <randy.dunlap@oracle.com>
Cc: akpm@linux-foundation.org
Cc: rostedt@goodmis.org
Cc: fweisbec@gmail.com
Cc: mathieu.desnoyers@polymtl.ca
Cc: wcohen@redhat.com
LKML-Reference: <73ff42be3420157667ec548e9b0e409c3cfad05f.1241107197.git.jbaron@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
Documentation/DocBook/tracepoint.tmpl | 5 +++
include/trace/events/irq.h | 46 ++++++++++++++++++++++++++++++---
2 files changed, 47 insertions(+), 4 deletions(-)
diff --git a/Documentation/DocBook/tracepoint.tmpl b/Documentation/DocBook/tracepoint.tmpl
index 70891bc..b0756d0 100644
--- a/Documentation/DocBook/tracepoint.tmpl
+++ b/Documentation/DocBook/tracepoint.tmpl
@@ -81,4 +81,9 @@
</para>
</chapter>
+ <chapter id="irq">
+ <title>IRQ</title>
+!Iinclude/trace/events/irq.h
+ </chapter>
+
</book>
diff --git a/include/trace/events/irq.h b/include/trace/events/irq.h
index 7686864..32a9f7e 100644
--- a/include/trace/events/irq.h
+++ b/include/trace/events/irq.h
@@ -7,8 +7,16 @@
#undef TRACE_SYSTEM
#define TRACE_SYSTEM irq
-/*
- * Tracepoint for entry of interrupt handler:
+/**
+ * irq_handler_entry - called immediately before the irq action handler
+ * @irq: irq number
+ * @action: pointer to struct irqaction
+ *
+ * The struct irqaction pointed to by @action contains various
+ * information about the handler, including the device name,
+ * @action->name, and the device id, @action->dev_id. When used in
+ * conjunction with the irq_handler_exit tracepoint, we can figure
+ * out irq handler latencies.
*/
TRACE_EVENT(irq_handler_entry,
@@ -29,8 +37,16 @@ TRACE_EVENT(irq_handler_entry,
TP_printk("irq=%d handler=%s", __entry->irq, __get_str(name))
);
-/*
- * Tracepoint for return of an interrupt handler:
+/**
+ * irq_handler_exit - called immediately after the irq action handler returns
+ * @irq: irq number
+ * @action: pointer to struct irqaction
+ * @ret: return value
+ *
+ * If the @ret value is set to IRQ_HANDLED, then we know that the corresponding
+ * @action->handler scuccessully handled this irq. Otherwise, the irq might be
+ * a shared irq line, or the irq was not handled successfully. Can be used in
+ * conjunction with the irq_handler_entry to understand irq handler latencies.
*/
TRACE_EVENT(irq_handler_exit,
@@ -52,6 +68,17 @@ TRACE_EVENT(irq_handler_exit,
__entry->irq, __entry->ret ? "handled" : "unhandled")
);
+/**
+ * softirq_entry - called immediately before the softirq handler
+ * @h: pointer to struct softirq_action
+ * @vec: pointer to first struct softirq_action in softirq_vec array
+ *
+ * The @h parameter, contains a pointer to the struct softirq_action
+ * which has a pointer to the action handler that is called. By subtracting
+ * the @vec pointer from the @h pointer, we can determine the softirq
+ * number. Also, when used in combination with the softirq_exit tracepoint
+ * we can determine the softirq latency.
+ */
TRACE_EVENT(softirq_entry,
TP_PROTO(struct softirq_action *h, struct softirq_action *vec),
@@ -71,6 +98,17 @@ TRACE_EVENT(softirq_entry,
TP_printk("softirq=%d action=%s", __entry->vec, __get_str(name))
);
+/**
+ * softirq_exit - called immediately after the softirq handler returns
+ * @h: pointer to struct softirq_action
+ * @vec: pointer to first struct softirq_action in softirq_vec array
+ *
+ * The @h parameter contains a pointer to the struct softirq_action
+ * that has handled the softirq. By subtracting the @vec pointer from
+ * the @h pointer, we can determine the softirq number. Also, when used in
+ * combination with the softirq_entry tracepoint we can determine the softirq
+ * latency.
+ */
TRACE_EVENT(softirq_exit,
TP_PROTO(struct softirq_action *h, struct softirq_action *vec),
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 0/3] add tracepoints docbook (take #2)
2009-04-30 17:29 [PATCH 0/3] add tracepoints docbook (take #2) Jason Baron
` (2 preceding siblings ...)
2009-04-30 17:29 ` [PATCH 3/3] add irq tracepoint documentation (take #2) Jason Baron
@ 2009-05-01 14:24 ` Jason Baron
2009-05-01 14:55 ` Ingo Molnar
3 siblings, 1 reply; 9+ messages in thread
From: Jason Baron @ 2009-05-01 14:24 UTC (permalink / raw)
To: mingo
Cc: linux-kernel, akpm, rostedt, fweisbec, mathieu.desnoyers,
randy.dunlap, wcohen
On Thu, Apr 30, 2009 at 01:29:08PM -0400, Jason Baron wrote:
> The following patches add a new tracepoint docbook. Since tracepoints can
> be defined by various macros and in various files, I think it important
> to clearly document the available tracepoints, as Andrew has pointed out.
> This helps us see what we have and what we don't have. If this patch is
> accepted, I hope that others will add docbook style comments, so we can
> have a complete accounting of the kernel's tracepoints.
>
hi,
i'd also like to get some agreement that future tracepoints need to
have this sort of documentation included when they are submitted. Also,
I'd like people who have already submitted tracepoints to go back and
add this kind of documentation. I'll volunteer to police the effort if
we agree it should be done.
thanks,
-Jason
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/3] add tracepoints docbook (take #2)
2009-05-01 14:24 ` [PATCH 0/3] add tracepoints docbook (take #2) Jason Baron
@ 2009-05-01 14:55 ` Ingo Molnar
0 siblings, 0 replies; 9+ messages in thread
From: Ingo Molnar @ 2009-05-01 14:55 UTC (permalink / raw)
To: Jason Baron
Cc: linux-kernel, akpm, rostedt, fweisbec, mathieu.desnoyers,
randy.dunlap, wcohen
* Jason Baron <jbaron@redhat.com> wrote:
> On Thu, Apr 30, 2009 at 01:29:08PM -0400, Jason Baron wrote:
>
> > The following patches add a new tracepoint docbook. Since
> > tracepoints can be defined by various macros and in various
> > files, I think it important to clearly document the available
> > tracepoints, as Andrew has pointed out. This helps us see what
> > we have and what we don't have. If this patch is accepted, I
> > hope that others will add docbook style comments, so we can have
> > a complete accounting of the kernel's tracepoints.
> >
>
> hi,
>
> i'd also like to get some agreement that future tracepoints need
> to have this sort of documentation included when they are
> submitted. Also, I'd like people who have already submitted
> tracepoints to go back and add this kind of documentation. I'll
> volunteer to police the effort if we agree it should be done.
sure - but sending patches would be even more useful than policing
:)
Ingo
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-05-01 15:01 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-30 17:29 [PATCH 0/3] add tracepoints docbook (take #2) Jason Baron
2009-04-30 17:29 ` [PATCH 1/3] make kernel-doc understand TRACE_EVENT() macro " Jason Baron
2009-05-01 13:28 ` [tip:tracing/core] kerneldoc, tracing: " tip-bot for Jason Baron
2009-04-30 17:29 ` [PATCH 2/3] add new tracepoints docbook " Jason Baron
2009-05-01 13:28 ` [tip:tracing/core] tracing: add new tracepoints docbook tip-bot for Jason Baron
2009-04-30 17:29 ` [PATCH 3/3] add irq tracepoint documentation (take #2) Jason Baron
2009-05-01 13:28 ` [tip:tracing/core] tracing: add irq tracepoint documentation tip-bot for Jason Baron
2009-05-01 14:24 ` [PATCH 0/3] add tracepoints docbook (take #2) Jason Baron
2009-05-01 14:55 ` Ingo Molnar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox