summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/gvt/scheduler.c
diff options
context:
space:
mode:
authorZhenyu Wang2017-12-01 07:59:53 +0100
committerZhenyu Wang2017-12-04 04:24:35 +0100
commitda5f99eaccc10e30bf82eb02b1be74703b878720 (patch)
treef07086819365bb7e2cb2e528d71eef78163cbe0b /drivers/gpu/drm/i915/gvt/scheduler.c
parentdrm/i915/gvt: Kick scheduler when new workload queued (diff)
downloadkernel-qcow2-linux-da5f99eaccc10e30bf82eb02b1be74703b878720.tar.gz
kernel-qcow2-linux-da5f99eaccc10e30bf82eb02b1be74703b878720.tar.xz
kernel-qcow2-linux-da5f99eaccc10e30bf82eb02b1be74703b878720.zip
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>
Diffstat (limited to 'drivers/gpu/drm/i915/gvt/scheduler.c')
-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 76d2812f2f03..9100aebcb105 100644
--- a/drivers/gpu/drm/i915/gvt/scheduler.c
+++ b/drivers/gpu/drm/i915/gvt/scheduler.c
@@ -188,10 +188,12 @@ static int shadow_context_status_change(struct notifier_block *nb,
atomic_set(&workload->shadow_ctx_active, 1);
break;
case INTEL_CONTEXT_SCHEDULE_OUT:
- case INTEL_CONTEXT_SCHEDULE_PREEMPTED:
save_ring_hw_state(workload->vgpu, ring_id);
atomic_set(&workload->shadow_ctx_active, 0);
break;
+ case INTEL_CONTEXT_SCHEDULE_PREEMPTED:
+ save_ring_hw_state(workload->vgpu, ring_id);
+ break;
default:
WARN_ON(1);
return NOTIFY_OK;