-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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>
- Loading branch information
Punit Agrawal
authored and
Will Deacon
committed
Nov 20, 2014
1 parent
c852f32
commit d784e29
Showing
3 changed files
with
53 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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> |