summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/fecs_trace_gk20a.c
diff options
context:
space:
mode:
authorThomas Fleury <tfleury@nvidia.com>2017-04-12 14:31:51 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-04-14 15:14:24 -0400
commit1d95b96652c48a85a59daca9ab05397ded785a66 (patch)
tree97bd30a6fa122fe503ce0bdd8ecd7de7f36f6283 /drivers/gpu/nvgpu/gk20a/fecs_trace_gk20a.c
parent4aec9b0233c85496ecf3fe0c564b0019b8673410 (diff)
gpu: nvgpu: fix pid mapping for dGPU FECS traces
For dGPU, instance block is in vidmem, and context_ptr was not properly computed, leading to reporting pid=0 in FECS traces. Use gk20a_mm_inst_block_addr, which handles all cases to determine instance block physical address. Bug 1899195 Change-Id: If003d9f00aff66d808e66c06baf6ded38699981a Signed-off-by: Thomas Fleury <tfleury@nvidia.com> Reviewed-on: http://git-master/r/1461646 (cherry picked from commit 0a58c5ace036cdf53e3555afe33f694b801f2629) Reviewed-on: http://git-master/r/1462396 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/fecs_trace_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/fecs_trace_gk20a.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/fecs_trace_gk20a.c b/drivers/gpu/nvgpu/gk20a/fecs_trace_gk20a.c
index 316dcda4..ffc5f9f5 100644
--- a/drivers/gpu/nvgpu/gk20a/fecs_trace_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/fecs_trace_gk20a.c
@@ -77,9 +77,9 @@ static inline u64 gk20a_fecs_trace_record_ts_timestamp_v(u64 ts)
77} 77}
78 78
79 79
80static u32 gk20a_fecs_trace_fecs_context_ptr(struct channel_gk20a *ch) 80static u32 gk20a_fecs_trace_fecs_context_ptr(struct gk20a *g, struct channel_gk20a *ch)
81{ 81{
82 return (u32) (sg_phys(ch->inst_block.sgt->sgl) >> 12LL); 82 return (u32) (gk20a_mm_inst_block_addr(g, &ch->inst_block) >> 12LL);
83} 83}
84 84
85static inline int gk20a_fecs_trace_num_ts(void) 85static inline int gk20a_fecs_trace_num_ts(void)
@@ -619,7 +619,7 @@ static int gk20a_fecs_trace_bind_channel(struct gk20a *g,
619 struct channel_ctx_gk20a *ch_ctx = &ch->ch_ctx; 619 struct channel_ctx_gk20a *ch_ctx = &ch->ch_ctx;
620 struct gk20a_fecs_trace *trace = g->fecs_trace; 620 struct gk20a_fecs_trace *trace = g->fecs_trace;
621 struct nvgpu_mem *mem = &ch_ctx->gr_ctx->mem; 621 struct nvgpu_mem *mem = &ch_ctx->gr_ctx->mem;
622 u32 context_ptr = gk20a_fecs_trace_fecs_context_ptr(ch); 622 u32 context_ptr = gk20a_fecs_trace_fecs_context_ptr(g, ch);
623 pid_t pid; 623 pid_t pid;
624 u32 aperture; 624 u32 aperture;
625 625
@@ -675,7 +675,7 @@ static int gk20a_fecs_trace_bind_channel(struct gk20a *g,
675 675
676static int gk20a_fecs_trace_unbind_channel(struct gk20a *g, struct channel_gk20a *ch) 676static int gk20a_fecs_trace_unbind_channel(struct gk20a *g, struct channel_gk20a *ch)
677{ 677{
678 u32 context_ptr = gk20a_fecs_trace_fecs_context_ptr(ch); 678 u32 context_ptr = gk20a_fecs_trace_fecs_context_ptr(g, ch);
679 679
680 gk20a_dbg(gpu_dbg_fn|gpu_dbg_ctxsw, 680 gk20a_dbg(gpu_dbg_fn|gpu_dbg_ctxsw,
681 "ch=%p context_ptr=%x", ch, context_ptr); 681 "ch=%p context_ptr=%x", ch, context_ptr);