aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhenyu Wang <zhenyuw@linux.intel.com>2017-12-01 01:59:53 -0500
committerZhenyu Wang <zhenyuw@linux.intel.com>2017-12-05 22:34:10 -0500
commitac7688c0397442f1c9eef7069737089660322497 (patch)
tree2f7b116ef295964f433a17d1881e3336f0df685a
parent29f9e425973d3c7cdfc32725a4d7c4c2f537d5a9 (diff)
drm/i915/gvt: Don't mark vgpu context as inactive when preempted
We shouldn't mark inactive for vGPU context if preempted, which would still be re-scheduled later. So keep active state. Fixes: d6c0511300dc ("drm/i915/execlists: Distinguish the incomplete context notifies") Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com> (cherry picked from commit da5f99eaccc10e30bf82eb02b1be74703b878720)
-rw-r--r--drivers/gpu/drm/i915/gvt/scheduler.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c b/drivers/gpu/drm/i915/gvt/scheduler.c
index a63787be1e6b..ab3d041ee5f9 100644
--- a/drivers/gpu/drm/i915/gvt/scheduler.c
+++ b/drivers/gpu/drm/i915/gvt/scheduler.c
@@ -189,10 +189,12 @@ static int shadow_context_status_change(struct notifier_block *nb,
189 atomic_set(&workload->shadow_ctx_active, 1); 189 atomic_set(&workload->shadow_ctx_active, 1);
190 break; 190 break;
191 case INTEL_CONTEXT_SCHEDULE_OUT: 191 case INTEL_CONTEXT_SCHEDULE_OUT:
192 case INTEL_CONTEXT_SCHEDULE_PREEMPTED:
193 save_ring_hw_state(workload->vgpu, ring_id); 192 save_ring_hw_state(workload->vgpu, ring_id);
194 atomic_set(&workload->shadow_ctx_active, 0); 193 atomic_set(&workload->shadow_ctx_active, 0);
195 break; 194 break;
195 case INTEL_CONTEXT_SCHEDULE_PREEMPTED:
196 save_ring_hw_state(workload->vgpu, ring_id);
197 break;
196 default: 198 default:
197 WARN_ON(1); 199 WARN_ON(1);
198 return NOTIFY_OK; 200 return NOTIFY_OK;