Thanks for the patch. :)

-----Original Message-----
From: Chris Wilson [mailto:ch...@chris-wilson.co.uk] 
Sent: Wednesday, September 27, 2017 7:45 PM
To: intel-gfx@lists.freedesktop.org
Cc: Chris Wilson <ch...@chris-wilson.co.uk>; Zhenyu Wang 
<zhen...@linux.intel.com>; Wang, Zhi A <zhi.a.w...@intel.com>; Winiarski, 
Michal <michal.winiar...@intel.com>; Mika Kuoppala 
<mika.kuopp...@linux.intel.com>; Ursulin, Tvrtko <tvrtko.ursu...@intel.com>
Subject: [PATCH v2 05/11] drm/i915/execlists: Distinguish the incomplete 
context notifies

Let the listener know that the context we just scheduled out was not complete, 
and will be scheduled back in at a later point.

v2: Handle CONTEXT_STATUS_PREEMPTED in gvt by aliasing it to CONTEXT_STATUS_OUT 
for the moment, gvt can expand upon the difference later.

Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
Cc: "Zhenyu Wang" <zhen...@linux.intel.com>
Cc: "Wang, Zhi A" <zhi.a.w...@intel.com>
Cc: Michał Winiarski <michal.winiar...@intel.com>
Cc: Mika Kuoppala <mika.kuopp...@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursu...@intel.com>
---
 drivers/gpu/drm/i915/gvt/scheduler.c | 1 +
 drivers/gpu/drm/i915/intel_lrc.c     | 2 +-
 drivers/gpu/drm/i915/intel_lrc.h     | 1 +
 3 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c 
b/drivers/gpu/drm/i915/gvt/scheduler.c
index d5892d24f0b6..f6ded475bb2c 100644
--- a/drivers/gpu/drm/i915/gvt/scheduler.c
+++ b/drivers/gpu/drm/i915/gvt/scheduler.c
@@ -174,6 +174,7 @@ 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:
                atomic_set(&workload->shadow_ctx_active, 0);
                break;
        default:
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 3998f359d4f0..e3d65b49a40d 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -618,7 +618,7 @@ execlist_cancel_port_requests(struct intel_engine_execlists 
*execlists)
        while (num_ports-- && port_isset(port)) {
                struct drm_i915_gem_request *rq = port_request(port);
 
-               execlists_context_status_change(rq, INTEL_CONTEXT_SCHEDULE_OUT);
+               execlists_context_status_change(rq, 
+INTEL_CONTEXT_SCHEDULE_PREEMPTED);
                i915_gem_request_put(rq);
 
                memset(port, 0, sizeof(*port));
diff --git a/drivers/gpu/drm/i915/intel_lrc.h b/drivers/gpu/drm/i915/intel_lrc.h
index 314adee7127a..689fde1a63a9 100644
--- a/drivers/gpu/drm/i915/intel_lrc.h
+++ b/drivers/gpu/drm/i915/intel_lrc.h
@@ -61,6 +61,7 @@
 enum {
        INTEL_CONTEXT_SCHEDULE_IN = 0,
        INTEL_CONTEXT_SCHEDULE_OUT,
+       INTEL_CONTEXT_SCHEDULE_PREEMPTED,
 };
 
 /* Logical Rings */
--
2.14.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to