diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2016-02-02 08:48:10 -0500 |
---|---|---|
committer | Deepak Nibade <dnibade@nvidia.com> | 2016-12-27 04:52:10 -0500 |
commit | 333b839b278f004bdb49cd7c72118a7137cb802e (patch) | |
tree | c298e3bbfe7ccf80c937c4bcecbac30d99526e69 | |
parent | de47308b2c2ef2d24951a7e1c4ece9964417c167 (diff) |
gpu: nvgpu: post events on all channels of TSG
While posting CILP preemption complete event to
user space, raise the event to all channels of TSG
(if channel is part of TSG)
This is a WAR until we have proper sync mechanism
with user space to raise CILP events
Bug 200156699
Change-Id: Ieedc866498a8c5464cf65962257a803b37da6826
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: http://git-master/r/1001696
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/gr_gp10b.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c index 91adf20c..6ed91bb1 100644 --- a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c | |||
@@ -1523,8 +1523,21 @@ static int gr_gp10b_handle_fecs_error(struct gk20a *g, | |||
1523 | 1523 | ||
1524 | if (gk20a_gr_sm_debugger_attached(g)) { | 1524 | if (gk20a_gr_sm_debugger_attached(g)) { |
1525 | gk20a_err(dev_from_gk20a(g), "CILP: posting usermode event"); | 1525 | gk20a_err(dev_from_gk20a(g), "CILP: posting usermode event"); |
1526 | gk20a_dbg_gpu_post_events(ch); | 1526 | |
1527 | gk20a_channel_post_event(ch); | 1527 | if (gk20a_is_channel_marked_as_tsg(ch)) { |
1528 | struct tsg_gk20a *tsg = &g->fifo.tsg[ch->tsgid]; | ||
1529 | struct channel_gk20a *__ch; | ||
1530 | |||
1531 | mutex_lock(&tsg->ch_list_lock); | ||
1532 | list_for_each_entry(__ch, &tsg->ch_list, ch_entry) { | ||
1533 | gk20a_dbg_gpu_post_events(__ch); | ||
1534 | gk20a_channel_post_event(__ch); | ||
1535 | } | ||
1536 | mutex_unlock(&tsg->ch_list_lock); | ||
1537 | } else { | ||
1538 | gk20a_dbg_gpu_post_events(ch); | ||
1539 | gk20a_channel_post_event(ch); | ||
1540 | } | ||
1528 | } | 1541 | } |
1529 | 1542 | ||
1530 | gk20a_channel_put(ch); | 1543 | gk20a_channel_put(ch); |