[PATCH] irq: add irq handler function name in ftrace

From: Li Fei
Date: Tue Aug 20 2013 - 23:46:07 EST


At present, irq handler function name is not printed out when
irq_handler_entry is added into trace event, which is inconvenient
for debugging.
In order to improve the debugging efficiency, print out the handler
function name in irq_handler_entry.

Signed-off-by: Li Fei <fei.li@xxxxxxxxx>
Acked-by: Liu Chuansheng <chuansheng.liu@xxxxxxxxx>
---
Documentation/trace/ftrace.txt | 8 ++++----
include/trace/events/irq.h | 5 ++++-
2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/Documentation/trace/ftrace.txt b/Documentation/trace/ftrace.txt
index b937c6e..907ecbd 100644
--- a/Documentation/trace/ftrace.txt
+++ b/Documentation/trace/ftrace.txt
@@ -2701,10 +2701,10 @@ CPU:2 [LOST 11745 EVENTS]
bash-1998 [000] ..s2 138.733106: softirq_exit: vec=1 [action=TIMER]
bash-1998 [000] ..s2 138.733106: softirq_entry: vec=9 [action=RCU]
bash-1998 [000] ..s2 138.733109: softirq_exit: vec=9 [action=RCU]
- sshd-1995 [001] d.h1 138.733278: irq_handler_entry: irq=21 name=uhci_hcd:usb4
- sshd-1995 [001] d.h1 138.733280: irq_handler_exit: irq=21 ret=unhandled
- sshd-1995 [001] d.h1 138.733281: irq_handler_entry: irq=21 name=eth0
- sshd-1995 [001] d.h1 138.733283: irq_handler_exit: irq=21 ret=handled
+ kworker/0:2-161 [001] d.h1 138.733278: irq_handler_entry: irq=17 name=i2c-designware-pci-7 func=i2c_dw_isr
+ kworker/0:2-161 [001] d.h1 138.733280: irq_handler_exit: irq=17 ret=unhandled
+ kworker/0:2-161 [001] d.h1 138.733281: irq_handler_entry: irq=17 name=mmc0 func=sdhci_irq
+ kworker/0:2-161 [001] d.h1 138.733283: irq_handler_exit: irq=17 ret=handled
[...]

# cat instances/zoot/trace
diff --git a/include/trace/events/irq.h b/include/trace/events/irq.h
index 1c09820..3497eb3 100644
--- a/include/trace/events/irq.h
+++ b/include/trace/events/irq.h
@@ -43,14 +43,17 @@ TRACE_EVENT(irq_handler_entry,
TP_STRUCT__entry(
__field( int, irq )
__string( name, action->name )
+ __field(irq_handler_t, func)
),

TP_fast_assign(
__entry->irq = irq;
__assign_str(name, action->name);
+ __entry->func = action->handler;
),

- TP_printk("irq=%d name=%s", __entry->irq, __get_str(name))
+ TP_printk("irq=%d name=%s func=%pf",
+ __entry->irq, __get_str(name), __entry->func)
);

/**
--
1.7.4.1



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/