diff options
author | Richard Zhao <rizhao@nvidia.com> | 2016-01-04 19:27:33 -0500 |
---|---|---|
committer | Deepak Nibade <dnibade@nvidia.com> | 2016-12-27 04:52:10 -0500 |
commit | 5dcbe39a71ccd7c09c128b92d612036e57293a71 (patch) | |
tree | 5860bb75fcff21b8c3daaf4687e22c7668382963 /drivers/gpu/nvgpu/gp10b/fifo_gp10b.c | |
parent | 03afa9b0608126e1652d7e489ab8e1e05547a6e1 (diff) |
gpu: nvgpu: enable semaphore acquire timeout for gp10b
It'll detect dead semaphore acquire. The worst case is when
ACQUIRE_SWITCH is disabled, semaphore acquire will poll and
consume full gpu timeslicees.
The timeout value is set to half of channel WDT.
Bug 1636800
Change-Id: Idbd4bfa52981e8a849b62a168e3a6828330112f5
Signed-off-by: Richard Zhao <rizhao@nvidia.com>
Reviewed-on: http://git-master/r/928830
Reviewed-by: Aingara Paramakuru <aparamakuru@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gp10b/fifo_gp10b.c')
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/fifo_gp10b.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/fifo_gp10b.c b/drivers/gpu/nvgpu/gp10b/fifo_gp10b.c index 8c53978b..ade6ff0a 100644 --- a/drivers/gpu/nvgpu/gp10b/fifo_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/fifo_gp10b.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * GP10B fifo | 2 | * GP10B fifo |
3 | * | 3 | * |
4 | * Copyright (c) 2015, NVIDIA CORPORATION. All rights reserved. | 4 | * Copyright (c) 2015-2016, NVIDIA CORPORATION. All rights reserved. |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify it | 6 | * This program is free software; you can redistribute it and/or modify it |
7 | * under the terms and conditions of the GNU General Public License, | 7 | * under the terms and conditions of the GNU General Public License, |
@@ -122,11 +122,7 @@ static int channel_gp10b_setup_ramfc(struct channel_gk20a *c, | |||
122 | gk20a_mem_wr32(inst_ptr, ram_fc_target_w(), pbdma_target_engine_sw_f()); | 122 | gk20a_mem_wr32(inst_ptr, ram_fc_target_w(), pbdma_target_engine_sw_f()); |
123 | 123 | ||
124 | gk20a_mem_wr32(inst_ptr, ram_fc_acquire_w(), | 124 | gk20a_mem_wr32(inst_ptr, ram_fc_acquire_w(), |
125 | pbdma_acquire_retry_man_2_f() | | 125 | channel_gk20a_pbdma_acquire_val(c)); |
126 | pbdma_acquire_retry_exp_2_f() | | ||
127 | pbdma_acquire_timeout_exp_max_f() | | ||
128 | pbdma_acquire_timeout_man_max_f() | | ||
129 | pbdma_acquire_timeout_en_disable_f()); | ||
130 | 126 | ||
131 | gk20a_mem_wr32(inst_ptr, ram_fc_runlist_timeslice_w(), | 127 | gk20a_mem_wr32(inst_ptr, ram_fc_runlist_timeslice_w(), |
132 | pbdma_runlist_timeslice_timeout_128_f() | | 128 | pbdma_runlist_timeslice_timeout_128_f() | |