summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
diff options
context:
space:
mode:
authorAlex Waterman <alexw@nvidia.com>2016-05-03 13:46:48 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2016-06-13 10:38:57 -0400
commit832e4fce1e7dc7494b57412f1addb75bc1c4fa94 (patch)
tree912dc9802cb54dd6d093b45d1da92faffd591498 /drivers/gpu/nvgpu/gk20a/channel_gk20a.c
parent5f3648137191513e3f98234b47251c16edd18ce7 (diff)
gpu: nvgpu: Rework the channel timeout handler messages
Rework how the messages in the channel timeout handler to be a little bit more verbose and more clear about what is happening. Bug 1732449 JIRA DNVGPU-12 Change-Id: Ifc018d99c647b3036caa8ad453e5e3dfc4151396 Signed-off-by: Alex Waterman <alexw@nvidia.com> Reviewed-on: http://git-master/r/1153669 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
index 0a6a40a8..9796d7c6 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
@@ -1697,9 +1697,8 @@ static void gk20a_channel_timeout_handler(struct work_struct *work)
1697 /* Need global lock since multiple channels can timeout at a time */ 1697 /* Need global lock since multiple channels can timeout at a time */
1698 mutex_lock(&g->ch_wdt_lock); 1698 mutex_lock(&g->ch_wdt_lock);
1699 1699
1700 gk20a_debug_dump(g->dev); 1700 gk20a_err(dev_from_gk20a(g), "Possible job timeout on ch=%d",
1701 gk20a_gr_debug_dump(g->dev); 1701 ch->hw_chid);
1702
1703 1702
1704 /* Get timed out job and reset the timer */ 1703 /* Get timed out job and reset the timer */
1705 mutex_lock(&ch->timeout.lock); 1704 mutex_lock(&ch->timeout.lock);
@@ -1707,14 +1706,23 @@ static void gk20a_channel_timeout_handler(struct work_struct *work)
1707 ch->timeout.initialized = false; 1706 ch->timeout.initialized = false;
1708 mutex_unlock(&ch->timeout.lock); 1707 mutex_unlock(&ch->timeout.lock);
1709 1708
1710 if (gr_gk20a_disable_ctxsw(g)) 1709 if (gr_gk20a_disable_ctxsw(g)) {
1710 gk20a_err(dev_from_gk20a(g), "Unable to disable ctxsw!");
1711 goto fail_unlock; 1711 goto fail_unlock;
1712 }
1712 1713
1713 if (gk20a_fence_is_expired(job->post_fence)) 1714 if (gk20a_fence_is_expired(job->post_fence)) {
1715 gk20a_err(dev_from_gk20a(g),
1716 "Timed out fence is expired on c=%d!",
1717 ch->hw_chid);
1714 goto fail_enable_ctxsw; 1718 goto fail_enable_ctxsw;
1719 }
1720
1721 gk20a_err(dev_from_gk20a(g), "Confirmed: job on channel %d timed out",
1722 ch->hw_chid);
1715 1723
1716 gk20a_err(dev_from_gk20a(g), "Job on channel %d timed out\n", 1724 gk20a_debug_dump(g->dev);
1717 ch->hw_chid); 1725 gk20a_gr_debug_dump(g->dev);
1718 1726
1719 /* Get failing engine data */ 1727 /* Get failing engine data */
1720 engine_id = gk20a_fifo_get_failing_engine_data(g, &id, &is_tsg); 1728 engine_id = gk20a_fifo_get_failing_engine_data(g, &id, &is_tsg);