aboutsummaryrefslogtreecommitdiff
path: root/arch/arm64/include/asm/trace/events/string.h
diff options
context:
space:
mode:
authorSteve Capper <steve.capper@linaro.org>2014-07-10 14:50:12 +0100
committerSteve Capper <steve.capper@linaro.org>2014-07-14 16:19:03 +0100
commit384a981d667088ed37fd7e7677c63d7a1113c17f (patch)
tree4912c3edb0d3cb2a8e35175be6f7e3fa9288a96d /arch/arm64/include/asm/trace/events/string.h
parent1795cd9b3a91d4b5473c97f491d63892442212ab (diff)
downloadlinux-arm64-memcpy-trace.tar.gz
arm64: lib: Add static tracepoint for memcpyarm64-memcpy-trace
To better gauge the memcpy usage across the kernel, this patch creates a static ftrace probe for memcpy taking the src, dest, size and caller pc. TODO: this will add a function call overhead, we could inline the new memcpy, that would need some thought on how to handle the trace point logic. Signed-off-by: Steve Capper <steve.capper@linaro.org>
Diffstat (limited to 'arch/arm64/include/asm/trace/events/string.h')
-rw-r--r--arch/arm64/include/asm/trace/events/string.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/arch/arm64/include/asm/trace/events/string.h b/arch/arm64/include/asm/trace/events/string.h
new file mode 100644
index 00000000000..c3649d20003
--- /dev/null
+++ b/arch/arm64/include/asm/trace/events/string.h
@@ -0,0 +1,37 @@
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM string
+
+#if !defined(_TRACE_STRING_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_STRING_H
+
+#include <linux/tracepoint.h>
+
+TRACE_EVENT(memcpy,
+ TP_PROTO(void *dest, const void *src, size_t count, void *location),
+
+ TP_ARGS(dest, src, count, location),
+
+ TP_STRUCT__entry(
+ __field(void *, dest)
+ __field(const void *, src)
+ __field(size_t, count)
+ __field(void *, location)
+ ),
+
+ TP_fast_assign(
+ __entry->dest = dest;
+ __entry->src = src;
+ __entry->count = count;
+ __entry->location = location;
+ ),
+
+ TP_printk("dest=%p src=%p count=%ld location=%p",
+ __entry->dest, __entry->src,
+ __entry->count, __entry->location)
+);
+
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH asm/trace/events
+#endif /*_TRACE_STRING_H */
+
+#include <trace/define_trace.h>