All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michał Winiarski" <michal.winiarski@intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: [PATCH 05/14] drm/i915/guc: Add preemption action to GuC firmware interface
Date: Thu, 19 Oct 2017 20:36:10 +0200	[thread overview]
Message-ID: <20171019183619.6235-6-michal.winiarski@intel.com> (raw)
In-Reply-To: <20171019183619.6235-1-michal.winiarski@intel.com>

We're using GuC action to request preemption. However, after requesting
preemption we need to wait for GuC to finish its own post-processing
before we start submitting our requests. Firmware is using shared
context to report its status.
Let's update GuC firmware interface with those new definitions.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Cc: Jeff McGee <jeff.mcgee@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Oscar Mateo <oscar.mateo@intel.com>
Reviewed-by: Jeff McGee <jeff.mcgee@intel.com>
---
 drivers/gpu/drm/i915/intel_guc_fwif.h | 40 +++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_guc_fwif.h b/drivers/gpu/drm/i915/intel_guc_fwif.h
index 80c507435458..bc9897f96e56 100644
--- a/drivers/gpu/drm/i915/intel_guc_fwif.h
+++ b/drivers/gpu/drm/i915/intel_guc_fwif.h
@@ -544,9 +544,36 @@ union guc_log_control {
 	u32 value;
 } __packed;
 
+struct guc_ctx_report {
+	u32 report_return_status;
+	u32 reserved1[64];
+	u32 affected_count;
+	u32 reserved2[2];
+} __packed;
+
+/* GuC Shared Context Data Struct */
+struct guc_shared_ctx_data {
+	u32 addr_of_last_preempted_data_low;
+	u32 addr_of_last_preempted_data_high;
+	u32 addr_of_last_preempted_data_high_tmp;
+	u32 padding;
+	u32 is_mapped_to_proxy;
+	u32 proxy_ctx_id;
+	u32 engine_reset_ctx_id;
+	u32 media_reset_count;
+	u32 reserved1[8];
+	u32 uk_last_ctx_switch_reason;
+	u32 was_reset;
+	u32 lrca_gpu_addr;
+	u64 execlist_ctx;
+	u32 reserved2[66];
+	struct guc_ctx_report preempt_ctx_report[GUC_MAX_ENGINES_NUM];
+} __packed;
+
 /* This Action will be programmed in C180 - SOFT_SCRATCH_O_REG */
 enum intel_guc_action {
 	INTEL_GUC_ACTION_DEFAULT = 0x0,
+	INTEL_GUC_ACTION_REQUEST_PREEMPTION = 0x2,
 	INTEL_GUC_ACTION_SAMPLE_FORCEWAKE = 0x6,
 	INTEL_GUC_ACTION_ALLOCATE_DOORBELL = 0x10,
 	INTEL_GUC_ACTION_DEALLOCATE_DOORBELL = 0x20,
@@ -562,6 +589,19 @@ enum intel_guc_action {
 	INTEL_GUC_ACTION_LIMIT
 };
 
+enum intel_guc_preempt_options {
+	INTEL_GUC_PREEMPT_OPTION_IMMEDIATE = 0x1,
+	INTEL_GUC_PREEMPT_OPTION_DROP_WORK_Q = 0x4,
+	INTEL_GUC_PREEMPT_OPTION_DROP_SUBMIT_Q = 0x8,
+};
+
+enum intel_guc_report_status {
+	INTEL_GUC_REPORT_STATUS_UNKNOWN = 0x0,
+	INTEL_GUC_REPORT_STATUS_ACKED = 0x1,
+	INTEL_GUC_REPORT_STATUS_ERROR = 0x2,
+	INTEL_GUC_REPORT_STATUS_COMPLETE = 0x4,
+};
+
 /*
  * The GuC sends its response to a command by overwriting the
  * command in SS0. The response is distinguishable from a command
-- 
2.13.6

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

  parent reply	other threads:[~2017-10-19 18:37 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-19 18:36 [PATCH 00/14] Preemption with GuC, third attempt Michał Winiarski
2017-10-19 18:36 ` [PATCH 01/14] drm/i915/guc: Do not use 0 for GuC doorbell cookie Michał Winiarski
2017-10-21  6:28   ` Sagar Arun Kamble
2017-10-19 18:36 ` [PATCH 02/14] drm/i915/guc: Extract GuC stage desc pool creation into a helper Michał Winiarski
2017-10-19 18:36 ` [PATCH v2 03/14] drm/i915/guc: Allocate separate shared data object for GuC communication Michał Winiarski
2017-10-19 18:36 ` [PATCH 04/14] drm/i915/guc: Initialize GuC before restarting engines Michał Winiarski
2017-10-25 18:44   ` Chris Wilson
2017-10-19 18:36 ` Michał Winiarski [this message]
2017-10-19 18:36 ` [PATCH v2 06/14] drm/i915/guc: Add a second client, to be used for preemption Michał Winiarski
2017-10-19 19:36   ` Michal Wajdeczko
2017-10-19 18:36 ` [PATCH 07/14] drm/i915/guc: Split guc_wq_item_append Michał Winiarski
2017-10-19 18:36 ` [PATCH v2 08/14] drm/i915: Extract "emit write" part of emit breadcrumb functions Michał Winiarski
2017-10-19 18:36 ` [PATCH 09/14] drm/i915: Add information needed to track engine preempt state Michał Winiarski
2017-10-19 18:36 ` [PATCH 10/14] drm/i915/guc: Keep request->priority for its lifetime Michał Winiarski
2017-10-19 18:36 ` [PATCH v2 11/14] drm/i915: Rename helpers used for unwinding, use macro for can_preempt Michał Winiarski
2017-10-19 19:18   ` Chris Wilson
2017-10-19 19:20   ` Chris Wilson
2017-10-19 18:36 ` [PATCH v3 12/14] drm/i915/guc: Preemption! With GuC Michał Winiarski
2017-10-19 19:14   ` Chris Wilson
2017-10-19 19:16   ` Chris Wilson
2017-10-20  9:00   ` Chris Wilson
2017-10-20 17:00   ` Chris Wilson
2017-10-23 23:14   ` Daniele Ceraolo Spurio
2017-10-25 18:15   ` Chris Wilson
2017-10-19 18:36 ` [PATCH 13/14] drm/i915/guc: Workaround the missing user interrupt after preemption Michał Winiarski
2017-10-19 19:44   ` Chris Wilson
2017-10-20 17:22     ` Chris Wilson
2017-10-20 17:42       ` Daniele Ceraolo Spurio
2017-10-20 16:08   ` Chris Wilson
2017-10-19 18:36 ` [PATCH 14/14] HAX Enable GuC Submission for CI Michał Winiarski
2017-10-19 19:11 ` ✗ Fi.CI.BAT: failure for Preemption with GuC, third attempt Patchwork
2017-10-26 21:21 ` Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171019183619.6235-6-michal.winiarski@intel.com \
    --to=michal.winiarski@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.