diff options
author | Igor Nabirushkin <inabirushkin@nvidia.com> | 2014-12-29 12:16:30 +0400 |
---|---|---|
committer | Winnie Hsu <whsu@nvidia.com> | 2015-01-29 22:05:27 -0800 |
commit | c017b032a284d7cb1974f7e80a6c3613089b9c0e (patch) | |
tree | 1f9d6e50d2332f315749bd5d765de1561c1d755c /drivers/misc/tegra-profiler/hrt.c | |
parent | 6d956bb7ac0872a090b92d4ed4c842edf3c46963 (diff) |
misc: tegra-profiler: fix debug preempt warningstegra-l4t-r21.3tegra-l4t-r21-er-2015-02-02
Tegra Profiler: fix warnings with CONFIG_DEBUG_PREEMPT=y
* Add the missing preempt_disable/enable() pairs in start/stop ioctls.
* Untie mmap and some other samples from the current cpu.
Bug 200067410
Bug 1598009
Change-Id: I9f03facf3a0ecee20432019ea8094a349c7897d1
Signed-off-by: Igor Nabirushkin <inabirushkin@nvidia.com>
Reviewed-on: http://git-master/r/668123
(cherry picked from commit ee3374eb9983d1ccadbf3a54c977d3e6db97ec4a)
Reviewed-on: http://git-master/r/672042
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
Diffstat (limited to 'drivers/misc/tegra-profiler/hrt.c')
-rw-r--r-- | drivers/misc/tegra-profiler/hrt.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/drivers/misc/tegra-profiler/hrt.c b/drivers/misc/tegra-profiler/hrt.c index b7bd00c795ac..8081a03cd6b1 100644 --- a/drivers/misc/tegra-profiler/hrt.c +++ b/drivers/misc/tegra-profiler/hrt.c @@ -120,9 +120,9 @@ u64 quadd_get_time(void) } static void -put_sample_cpu(struct quadd_record_data *data, - struct quadd_iovec *vec, - int vec_count, int cpu_id) +__put_sample(struct quadd_record_data *data, + struct quadd_iovec *vec, + int vec_count, int cpu_id) { ssize_t err; struct quadd_comm_data_interface *comm = hrt.quadd_ctx->comm; @@ -135,10 +135,17 @@ put_sample_cpu(struct quadd_record_data *data, } void +quadd_put_sample_this_cpu(struct quadd_record_data *data, + struct quadd_iovec *vec, int vec_count) +{ + __put_sample(data, vec, vec_count, -1); +} + +void quadd_put_sample(struct quadd_record_data *data, struct quadd_iovec *vec, int vec_count) { - put_sample_cpu(data, vec, vec_count, -1); + __put_sample(data, vec, vec_count, 0); } static void put_header(void) @@ -202,7 +209,7 @@ static void put_header(void) vec.len = nr_events * sizeof(events[0]); for_each_possible_cpu(cpu_id) - put_sample_cpu(&record, &vec, 1, cpu_id); + __put_sample(&record, &vec, 1, cpu_id); } static void @@ -227,7 +234,7 @@ put_sched_sample(struct task_struct *task, int is_sched_in) s->data[0] = 0; s->data[1] = 0; - quadd_put_sample(&record, NULL, 0); + quadd_put_sample_this_cpu(&record, NULL, 0); } static int get_sample_data(struct quadd_sample_data *sample, @@ -461,7 +468,7 @@ read_all_sources(struct pt_regs *regs, struct task_struct *task) s->state = 0; } - quadd_put_sample(&record_data, vec, vec_idx); + quadd_put_sample_this_cpu(&record_data, vec, vec_idx); } static inline int |