From c3c4e00a8ddfcb888f640fc2aec3b69f53eae515 Mon Sep 17 00:00:00 2001 From: Igor Nabirushkin Date: Tue, 17 Apr 2018 16:20:12 +0300 Subject: misc: tegra-profiler: sample multiple processes - Sample multiple processes. Add a few new modes. - Fix possible crash in d_path() during multiple execs. Bug 2104957 Bug 2100416 Change-Id: Iab1568de9365e1c719b45c65f490bbd212995b69 Signed-off-by: Igor Nabirushkin Reviewed-on: https://git-master.nvidia.com/r/1696670 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Dmitry Antipov Reviewed-by: Sachin Nikam Reviewed-by: mobile promotions Tested-by: mobile promotions --- include/linux/tegra_profiler.h | 68 ++++++++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 29 deletions(-) (limited to 'include/linux/tegra_profiler.h') diff --git a/include/linux/tegra_profiler.h b/include/linux/tegra_profiler.h index d101ccc1a..2b08a2f90 100644 --- a/include/linux/tegra_profiler.h +++ b/include/linux/tegra_profiler.h @@ -19,8 +19,8 @@ #include -#define QUADD_SAMPLES_VERSION 42 -#define QUADD_IO_VERSION 24 +#define QUADD_SAMPLES_VERSION 43 +#define QUADD_IO_VERSION 25 #define QUADD_IO_VERSION_DYNAMIC_RB 5 #define QUADD_IO_VERSION_RB_MAX_FILL_COUNT 6 @@ -42,33 +42,35 @@ #define QUADD_IO_VERSION_RAW_EVENTS 22 #define QUADD_IO_VERSION_SAMPLING_MODE 23 #define QUADD_IO_VERSION_FORCE_ARCH_TIMER 24 - -#define QUADD_SAMPLE_VERSION_THUMB_MODE_FLAG 17 -#define QUADD_SAMPLE_VERSION_GROUP_SAMPLES 18 -#define QUADD_SAMPLE_VERSION_THREAD_STATE_FLD 19 -#define QUADD_SAMPLE_VERSION_BT_UNWIND_TABLES 22 -#define QUADD_SAMPLE_VERSION_SUPPORT_IP64 23 -#define QUADD_SAMPLE_VERSION_SPECIAL_MMAP 24 -#define QUADD_SAMPLE_VERSION_UNWIND_MIXED 25 -#define QUADD_SAMPLE_VERSION_UNW_ENTRY_TYPE 26 -#define QUADD_SAMPLE_VERSION_USE_ARCH_TIMER 27 -#define QUADD_SAMPLE_VERSION_SCHED_SAMPLES 28 -#define QUADD_SAMPLE_VERSION_HDR_UNW_METHOD 29 -#define QUADD_SAMPLE_VERSION_HDR_ARCH_TIMER 30 -#define QUADD_SAMPLE_VERSION_STACK_OFFSET 31 -#define QUADD_SAMPLE_VERSION_SCHED_TASK_STATE 32 -#define QUADD_SAMPLE_VERSION_URCS 33 -#define QUADD_SAMPLE_VERSION_HOTPLUG 34 -#define QUADD_SAMPLE_VERSION_PER_CPU_SETUP 35 -#define QUADD_SAMPLE_VERSION_REPORT_TGID 36 -#define QUADD_SAMPLE_VERSION_MMAP_TS 37 -#define QUADD_SAMPLE_VERSION_RAW_EVENTS 38 -#define QUADD_SAMPLE_VERSION_OVERHEAD_INFO 39 -#define QUADD_SAMPLE_VERSION_REPORT_VPID 40 -#define QUADD_SAMPLE_VERSION_SCHED_REPORT_VPID 41 -#define QUADD_SAMPLE_VERSION_SAMPLING_MODE 42 - -#define QUADD_MMAP_HEADER_VERSION 1 +#define QUADD_IO_VERSION_SAMPLE_ALL_TASKS 25 + +#define QUADD_SAMPLE_VERSION_THUMB_MODE_FLAG 17 +#define QUADD_SAMPLE_VERSION_GROUP_SAMPLES 18 +#define QUADD_SAMPLE_VERSION_THREAD_STATE_FLD 19 +#define QUADD_SAMPLE_VERSION_BT_UNWIND_TABLES 22 +#define QUADD_SAMPLE_VERSION_SUPPORT_IP64 23 +#define QUADD_SAMPLE_VERSION_SPECIAL_MMAP 24 +#define QUADD_SAMPLE_VERSION_UNWIND_MIXED 25 +#define QUADD_SAMPLE_VERSION_UNW_ENTRY_TYPE 26 +#define QUADD_SAMPLE_VERSION_USE_ARCH_TIMER 27 +#define QUADD_SAMPLE_VERSION_SCHED_SAMPLES 28 +#define QUADD_SAMPLE_VERSION_HDR_UNW_METHOD 29 +#define QUADD_SAMPLE_VERSION_HDR_ARCH_TIMER 30 +#define QUADD_SAMPLE_VERSION_STACK_OFFSET 31 +#define QUADD_SAMPLE_VERSION_SCHED_TASK_STATE 32 +#define QUADD_SAMPLE_VERSION_URCS 33 +#define QUADD_SAMPLE_VERSION_HOTPLUG 34 +#define QUADD_SAMPLE_VERSION_PER_CPU_SETUP 35 +#define QUADD_SAMPLE_VERSION_REPORT_TGID 36 +#define QUADD_SAMPLE_VERSION_MMAP_TS 37 +#define QUADD_SAMPLE_VERSION_RAW_EVENTS 38 +#define QUADD_SAMPLE_VERSION_OVERHEAD_INFO 39 +#define QUADD_SAMPLE_VERSION_REPORT_VPID 40 +#define QUADD_SAMPLE_VERSION_SCHED_REPORT_VPID 41 +#define QUADD_SAMPLE_VERSION_SAMPLING_MODE 42 +#define QUADD_SAMPLE_VERSION_SAMPLE_ALL_TASKS 43 + +#define QUADD_MMAP_HEADER_VERSION 1 #define QUADD_MAX_COUNTERS 32 #define QUADD_MAX_PROCESS 64 @@ -359,6 +361,10 @@ struct quadd_debug_data { #define QUADD_HDR_HAS_CPUID (1 << 6) #define QUADD_HDR_MODE_TRACE_ALL (1 << 7) #define QUADD_HDR_MODE_SAMPLING (1 << 8) +#define QUADD_HDR_MODE_TRACING (1 << 9) +#define QUADD_HDR_MODE_SAMPLE_ALL (1 << 10) +#define QUADD_HDR_MODE_SAMPLE_TREE (1 << 11) +#define QUADD_HDR_MODE_TRACE_TREE (1 << 12) struct quadd_header_data { u16 magic; @@ -419,6 +425,10 @@ enum { #define QUADD_PARAM_EXTRA_PER_PMU_SETUP (1 << 8) #define QUADD_PARAM_EXTRA_SAMPLING (1 << 9) #define QUADD_PARAM_EXTRA_FORCE_ARCH_TIMER (1 << 10) +#define QUADD_PARAM_EXTRA_SAMPLE_ALL_TASKS (1 << 11) +#define QUADD_PARAM_EXTRA_SAMPLE_TREE (1 << 12) +#define QUADD_PARAM_EXTRA_TRACING (1 << 13) +#define QUADD_PARAM_EXTRA_TRACE_TREE (1 << 14) enum { QUADD_EVENT_TYPE_RAW = 0, -- cgit v1.2.2