diff options
author | Punit Agrawal <punit.agrawal@arm.com> | 2014-11-18 11:41:27 +0000 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2014-11-20 16:35:02 +0000 |
commit | d784e2988a3e70a6f1047e80e01465a903ea2eba (patch) | |
tree | 9647174faebefdcef4c714e4135439cb2da90e11 /arch/arm64/kernel/trace-events-emulation.h | |
parent | c852f320584600a372646055d8229e063949eee7 (diff) | |
download | linux-stable-d784e2988a3e70a6f1047e80e01465a903ea2eba.tar.gz linux-stable-d784e2988a3e70a6f1047e80e01465a903ea2eba.tar.bz2 linux-stable-d784e2988a3e70a6f1047e80e01465a903ea2eba.zip |
arm64: Trace emulation of AArch32 legacy instructions
Introduce an event to trace the usage of emulated instructions. The
trace event is intended to help identify and encourage the migration
of legacy software using the emulation features.
Use this event to trace usage of swp and CP15 barrier emulation.
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/kernel/trace-events-emulation.h')
-rw-r--r-- | arch/arm64/kernel/trace-events-emulation.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/arch/arm64/kernel/trace-events-emulation.h b/arch/arm64/kernel/trace-events-emulation.h new file mode 100644 index 000000000000..ae1dd598ea65 --- /dev/null +++ b/arch/arm64/kernel/trace-events-emulation.h @@ -0,0 +1,35 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM emulation + +#if !defined(_TRACE_EMULATION_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_EMULATION_H + +#include <linux/tracepoint.h> + +TRACE_EVENT(instruction_emulation, + + TP_PROTO(const char *instr, u64 addr), + TP_ARGS(instr, addr), + + TP_STRUCT__entry( + __string(instr, instr) + __field(u64, addr) + ), + + TP_fast_assign( + __assign_str(instr, instr); + __entry->addr = addr; + ), + + TP_printk("instr=\"%s\" addr=0x%llx", __get_str(instr), __entry->addr) +); + +#endif /* _TRACE_EMULATION_H */ + +/* This part must be outside protection */ +#undef TRACE_INCLUDE_PATH +#undef TRACE_INCLUDE_FILE +#define TRACE_INCLUDE_PATH . + +#define TRACE_INCLUDE_FILE trace-events-emulation +#include <trace/define_trace.h> |