summaryrefslogtreecommitdiffstats
path: root/include/linux/tegra_profiler.h
diff options
context:
space:
mode:
authorIgor Nabirushkin <inabirushkin@nvidia.com>2015-03-16 11:13:33 -0400
committerIgor Nabirushkin <inabirushkin@nvidia.com>2017-07-13 10:18:41 -0400
commit6064f00590195eac04101e81c7662c6b35c579da (patch)
tree7c4ecb4272d19d8bad59e69b5482bb07d9ec218f /include/linux/tegra_profiler.h
parent2fcd078cf3aa2de8f9cdf582a834648a870d1b76 (diff)
misc: tegra-profiler: add unwind reason codes
Unwinding: store individual URC codes for each method. Bug 1624134 Change-Id: I3b2045f9c9147354f3440e326fd3aeccb5e0458d Signed-off-by: Igor Nabirushkin <inabirushkin@nvidia.com> Reviewed-on: http://git-master/r/717848 (cherry picked from commit c8aad67a838fb7d5fd7042f483afcd55e0376903)
Diffstat (limited to 'include/linux/tegra_profiler.h')
-rw-r--r--include/linux/tegra_profiler.h38
1 files changed, 18 insertions, 20 deletions
diff --git a/include/linux/tegra_profiler.h b/include/linux/tegra_profiler.h
index 66d5bf240..fffa74a7e 100644
--- a/include/linux/tegra_profiler.h
+++ b/include/linux/tegra_profiler.h
@@ -19,8 +19,8 @@
19 19
20#include <linux/ioctl.h> 20#include <linux/ioctl.h>
21 21
22#define QUADD_SAMPLES_VERSION 32 22#define QUADD_SAMPLES_VERSION 33
23#define QUADD_IO_VERSION 17 23#define QUADD_IO_VERSION 18
24 24
25#define QUADD_IO_VERSION_DYNAMIC_RB 5 25#define QUADD_IO_VERSION_DYNAMIC_RB 5
26#define QUADD_IO_VERSION_RB_MAX_FILL_COUNT 6 26#define QUADD_IO_VERSION_RB_MAX_FILL_COUNT 6
@@ -35,6 +35,7 @@
35#define QUADD_IO_VERSION_BT_LOWER_BOUND 15 35#define QUADD_IO_VERSION_BT_LOWER_BOUND 15
36#define QUADD_IO_VERSION_STACK_OFFSET 16 36#define QUADD_IO_VERSION_STACK_OFFSET 16
37#define QUADD_IO_VERSION_SECTIONS_INFO 17 37#define QUADD_IO_VERSION_SECTIONS_INFO 17
38#define QUADD_IO_VERSION_UNW_METHODS_OPT 18
38 39
39#define QUADD_SAMPLE_VERSION_THUMB_MODE_FLAG 17 40#define QUADD_SAMPLE_VERSION_THUMB_MODE_FLAG 17
40#define QUADD_SAMPLE_VERSION_GROUP_SAMPLES 18 41#define QUADD_SAMPLE_VERSION_GROUP_SAMPLES 18
@@ -50,6 +51,7 @@
50#define QUADD_SAMPLE_VERSION_HDR_ARCH_TIMER 30 51#define QUADD_SAMPLE_VERSION_HDR_ARCH_TIMER 30
51#define QUADD_SAMPLE_VERSION_STACK_OFFSET 31 52#define QUADD_SAMPLE_VERSION_STACK_OFFSET 31
52#define QUADD_SAMPLE_VERSION_SCHED_TASK_STATE 32 53#define QUADD_SAMPLE_VERSION_SCHED_TASK_STATE 32
54#define QUADD_SAMPLE_VERSION_URCS 33
53 55
54#define QUADD_MMAP_HEADER_VERSION 1 56#define QUADD_MMAP_HEADER_VERSION 1
55 57
@@ -165,18 +167,13 @@ enum quadd_cpu_mode {
165 167
166#pragma pack(push, 1) 168#pragma pack(push, 1)
167 169
168#define QUADD_SAMPLE_UNW_METHOD_SHIFT 0 170#define QUADD_SAMPLE_RES_URCS_ENABLED (1 << 0)
169#define QUADD_SAMPLE_UNW_METHOD_MASK (1 << QUADD_SAMPLE_UNW_METHOD_SHIFT)
170 171
171enum { 172#define QUADD_SAMPLE_URC_MASK 0xff
172 QUADD_UNW_METHOD_FP = 0,
173 QUADD_UNW_METHOD_EHT,
174 QUADD_UNW_METHOD_MIXED,
175 QUADD_UNW_METHOD_NONE,
176};
177 173
178#define QUADD_SAMPLE_URC_SHIFT 1 174#define QUADD_SAMPLE_URC_SHIFT_FP 0
179#define QUADD_SAMPLE_URC_MASK (0x0f << QUADD_SAMPLE_URC_SHIFT) 175#define QUADD_SAMPLE_URC_SHIFT_UT (1 * 8)
176#define QUADD_SAMPLE_URC_SHIFT_DWARF (2 * 8)
180 177
181enum { 178enum {
182 QUADD_URC_SUCCESS = 0, 179 QUADD_URC_SUCCESS = 0,
@@ -194,15 +191,13 @@ enum {
194 QUADD_URC_PC_INCORRECT, 191 QUADD_URC_PC_INCORRECT,
195 QUADD_URC_LEVEL_TOO_DEEP, 192 QUADD_URC_LEVEL_TOO_DEEP,
196 QUADD_URC_FP_INCORRECT, 193 QUADD_URC_FP_INCORRECT,
194 QUADD_URC_NONE,
197 QUADD_URC_MAX, 195 QUADD_URC_MAX,
198}; 196};
199 197
200#define QUADD_SED_IP64 (1 << 0) 198#define QUADD_SED_IP64 (1 << 0)
201 199
202#define QUADD_SED_UNW_METHOD_SHIFT 1 200#define QUADD_SED_STACK_OFFSET_SHIFT 1
203#define QUADD_SED_UNW_METHOD_MASK (0x07 << QUADD_SED_UNW_METHOD_SHIFT)
204
205#define QUADD_SED_STACK_OFFSET_SHIFT 4
206#define QUADD_SED_STACK_OFFSET_MASK (0xffff << QUADD_SED_STACK_OFFSET_SHIFT) 201#define QUADD_SED_STACK_OFFSET_MASK (0xffff << QUADD_SED_STACK_OFFSET_SHIFT)
207 202
208enum { 203enum {
@@ -318,11 +313,12 @@ struct quadd_debug_data {
318 313
319#define QUADD_HEADER_MAGIC 0x1122 314#define QUADD_HEADER_MAGIC 0x1122
320 315
321#define QUADD_HDR_UNW_METHOD_SHIFT 0 316#define QUADD_HDR_BT_FP (1 << 0)
322#define QUADD_HDR_UNW_METHOD_MASK (0x07 << QUADD_HDR_UNW_METHOD_SHIFT) 317#define QUADD_HDR_BT_UT (1 << 1)
323 318#define QUADD_HDR_BT_UT_CE (1 << 2)
324#define QUADD_HDR_USE_ARCH_TIMER (1 << 3) 319#define QUADD_HDR_USE_ARCH_TIMER (1 << 3)
325#define QUADD_HDR_STACK_OFFSET (1 << 4) 320#define QUADD_HDR_STACK_OFFSET (1 << 4)
321#define QUADD_HDR_BT_DWARF (1 << 5)
326 322
327struct quadd_header_data { 323struct quadd_header_data {
328 u16 magic; 324 u16 magic;
@@ -372,10 +368,12 @@ enum {
372 368
373#define QUADD_PARAM_EXTRA_GET_MMAP (1 << 0) 369#define QUADD_PARAM_EXTRA_GET_MMAP (1 << 0)
374#define QUADD_PARAM_EXTRA_BT_FP (1 << 1) 370#define QUADD_PARAM_EXTRA_BT_FP (1 << 1)
375#define QUADD_PARAM_EXTRA_BT_UNWIND_TABLES (1 << 2) 371#define QUADD_PARAM_EXTRA_BT_UT (1 << 2)
376#define QUADD_PARAM_EXTRA_BT_MIXED (1 << 3) 372#define QUADD_PARAM_EXTRA_BT_MIXED (1 << 3)
377#define QUADD_PARAM_EXTRA_USE_ARCH_TIMER (1 << 4) 373#define QUADD_PARAM_EXTRA_USE_ARCH_TIMER (1 << 4)
378#define QUADD_PARAM_EXTRA_STACK_OFFSET (1 << 5) 374#define QUADD_PARAM_EXTRA_STACK_OFFSET (1 << 5)
375#define QUADD_PARAM_EXTRA_BT_UT_CE (1 << 6)
376#define QUADD_PARAM_EXTRA_BT_DWARF (1 << 7)
379 377
380struct quadd_parameters { 378struct quadd_parameters {
381 u32 freq; 379 u32 freq;