diff options
author | Zhenyu Wang <zhenyuw@linux.intel.com> | 2017-12-01 01:59:53 -0500 |
---|---|---|
committer | Zhenyu Wang <zhenyuw@linux.intel.com> | 2017-12-05 22:34:10 -0500 |
commit | ac7688c0397442f1c9eef7069737089660322497 (patch) | |
tree | 2f7b116ef295964f433a17d1881e3336f0df685a | |
parent | 29f9e425973d3c7cdfc32725a4d7c4c2f537d5a9 (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.c | 4 |
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; |