diff options
author | Seema Khowala <seemaj@nvidia.com> | 2017-06-07 16:17:22 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-06-13 12:14:02 -0400 |
commit | 4f0e19d44dee9039378bce7bd0cfb11f36fd8926 (patch) | |
tree | 3d2349256da68b3c6ba2b0f513fbc51741d4d949 /drivers/gpu/nvgpu/gv11b/gr_gv11b.c | |
parent | 263cb402293d2050d7d08212e89e4c1dcb1d4ccc (diff) |
gpu: nvgpu: gv11b: issue tsg preempt only
Preempt type should be set to tsg and id should be set to tsgid
in fifo_preempt_r(). Preempt type channel and id set to channel
id does not initiate preemption.
Bug 200289427
Bug 200292090
Bug 200289491
Change-Id: I2ae96c0b9ca8a88a8405f42775744f0879994887
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: http://git-master/r/1497877
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b/gr_gv11b.c')
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/gr_gv11b.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c index 503fb6f7..a703e72c 100644 --- a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c | |||
@@ -1593,12 +1593,15 @@ static int gr_gv11b_disable_channel_or_tsg(struct gk20a *g, struct channel_gk20a | |||
1593 | 1593 | ||
1594 | gk20a_dbg(gpu_dbg_fn | gpu_dbg_gpu_dbg | gpu_dbg_intr, "CILP: restarted runlist"); | 1594 | gk20a_dbg(gpu_dbg_fn | gpu_dbg_gpu_dbg | gpu_dbg_intr, "CILP: restarted runlist"); |
1595 | 1595 | ||
1596 | if (gk20a_is_channel_marked_as_tsg(fault_ch)) | 1596 | if (gk20a_is_channel_marked_as_tsg(fault_ch)) { |
1597 | gk20a_fifo_issue_preempt(g, fault_ch->tsgid, true); | 1597 | gk20a_fifo_issue_preempt(g, fault_ch->tsgid, true); |
1598 | else | 1598 | nvgpu_log(g, gpu_dbg_fn | gpu_dbg_gpu_dbg | gpu_dbg_intr, |
1599 | gk20a_fifo_issue_preempt(g, fault_ch->hw_chid, false); | 1599 | "CILP: preempted the channel/tsg"); |
1600 | 1600 | } else { | |
1601 | gk20a_dbg(gpu_dbg_fn | gpu_dbg_gpu_dbg | gpu_dbg_intr, "CILP: preempted the channel/tsg"); | 1601 | nvgpu_log(g, gpu_dbg_fn | gpu_dbg_gpu_dbg | gpu_dbg_intr, |
1602 | "CILP: tsgid is invalid, cannot preempt"); | ||
1603 | WARN_ON(1); /* only TSG can be preempted */ | ||
1604 | } | ||
1602 | 1605 | ||
1603 | return ret; | 1606 | return ret; |
1604 | } | 1607 | } |