Tegra Profiler misc driver: thumb mode flag was
added into samples
Bug
1374335
Change-Id: Ie80e6508ed2a35b73ca5e65fd31d41f99220a252
Signed-off-by: Igor Nabirushkin <inabirushkin@nvidia.com>
Reviewed-on: http://git-master/r/298731
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Daniel Horowitz <dhorowitz@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: Maxim Morin <mmorin@nvidia.com>
record->cpu_mode = user_mode(regs) ?
QUADD_CPU_MODE_USER : QUADD_CPU_MODE_KERNEL;
- s->cpu = quadd_get_processor_id();
+ s->cpu = quadd_get_processor_id(regs);
s->pid = 0;
s->time = quadd_get_time();
s->timer_period = 0;
sample->event_id = event->event_id;
sample->ip = instruction_pointer(regs);
- sample->cpu = quadd_get_processor_id();
+ sample->cpu = quadd_get_processor_id(regs);
sample->time = get_sample_time();
if (prev_val <= val)
/*
if (__ratelimit(&ratelimit_state))
pr_info("sch_in, cpu: %d, prev: %u (%u) \t--> curr: %u (%u)\n",
- quadd_get_processor_id(), (unsigned int)prev->pid,
+ smp_processor_id(), (unsigned int)prev->pid,
(unsigned int)prev->tgid, (unsigned int)task->pid,
(unsigned int)task->tgid);
*/
/*
if (__ratelimit(&ratelimit_state))
pr_info("sch_out: cpu: %d, prev: %u (%u) \t--> next: %u (%u)\n",
- quadd_get_processor_id(), (unsigned int)prev->pid,
+ smp_processor_id(), (unsigned int)prev->pid,
(unsigned int)prev->tgid, (unsigned int)next->pid,
(unsigned int)next->tgid);
*/
-
prev_flag = is_profile_process(prev->tgid);
if (prev_flag) {
#define __QUADD_TEGRA_H
#include <linux/smp.h>
+#include <asm/ptrace.h>
#ifdef CONFIG_TEGRA_CLUSTER_CONTROL
#include <linux/io.h>
#include <../../mach-tegra/pm.h>
#endif
-static inline int quadd_get_processor_id(void)
+static inline int quadd_get_processor_id(struct pt_regs *regs)
{
int cpu_id = smp_processor_id();
#ifdef CONFIG_TEGRA_CLUSTER_CONTROL
if (is_lp_cluster())
- cpu_id |= QM_TEGRA_POWER_CLUSTER_LP;
+ cpu_id |= QUADD_CPUMODE_TEGRA_POWER_CLUSTER_LP;
#endif
+ if (thumb_mode(regs))
+ cpu_id |= QUADD_CPUMODE_THUMB;
+
return cpu_id;
}
#ifndef __QUADD_VERSION_H
#define __QUADD_VERSION_H
-#define QUADD_MODULE_VERSION "1.33"
+#define QUADD_MODULE_VERSION "1.34"
#define QUADD_MODULE_BRANCH "Dev"
#endif /* __QUADD_VERSION_H */
#include <linux/ioctl.h>
-#define QUADD_SAMPLES_VERSION 16
+#define QUADD_SAMPLES_VERSION 17
#define QUADD_IO_VERSION 6
#define QUADD_IO_VERSION_DYNAMIC_RB 5
#define QUADD_IO_VERSION_RB_MAX_FILL_COUNT 6
+#define QUADD_SAMPLE_VERSION_THUMB_MODE_FLAG 17
+
#define QUADD_MAX_COUNTERS 32
#define QUADD_MAX_PROCESS 64
#define QUADD_HRT_SCHED_IN_FUNC "finish_task_switch"
-#define QM_TEGRA_POWER_CLUSTER_LP (1 << 29) /* LP CPU */
+#define QUADD_CPUMODE_TEGRA_POWER_CLUSTER_LP (1 << 29) /* LP CPU */
+#define QUADD_CPUMODE_THUMB (1 << 30) /* thumb mode */
enum quadd_events_id {
QUADD_EVENT_TYPE_CPU_CYCLES = 0,