diff options
| author | Igor Nabirushkin <inabirushkin@nvidia.com> | 2015-03-16 11:13:33 -0400 |
|---|---|---|
| committer | Igor Nabirushkin <inabirushkin@nvidia.com> | 2017-07-13 10:18:41 -0400 |
| commit | 6064f00590195eac04101e81c7662c6b35c579da (patch) | |
| tree | 7c4ecb4272d19d8bad59e69b5482bb07d9ec218f /include/linux/tegra_profiler.h | |
| parent | 2fcd078cf3aa2de8f9cdf582a834648a870d1b76 (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.h | 38 |
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 | ||
| 171 | enum { | 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 | ||
| 181 | enum { | 178 | enum { |
| 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 | ||
| 208 | enum { | 203 | enum { |
| @@ -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 | ||
| 327 | struct quadd_header_data { | 323 | struct 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 | ||
| 380 | struct quadd_parameters { | 378 | struct quadd_parameters { |
| 381 | u32 freq; | 379 | u32 freq; |
