All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Wilson <chris@chris-wilson.co.uk>
To: intel-gfx@lists.freedesktop.org
Subject: [CI 7/7] drm/i915: Report whether we have true context isolation
Date: Sat,  4 Nov 2017 18:39:18 +0000	[thread overview]
Message-ID: <20171104183918.19286-7-chris@chris-wilson.co.uk> (raw)
In-Reply-To: <20171104183918.19286-1-chris@chris-wilson.co.uk>

Let userspace know if they can trust that new contexts are created using
HW default values; and avoid inheriting state from existing contexts.

Note: I intend to squash this into the bugfix once we agree on the uabi.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.c | 11 +++++++++++
 include/uapi/drm/i915_drm.h     | 14 ++++++++++++++
 2 files changed, 25 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 1b440f2b90a5..fa4839bcdd63 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -406,6 +406,17 @@ static int i915_getparam(struct drm_device *dev, void *data,
 		 */
 		value = 1;
 		break;
+	case I915_PARAM_HAS_CONTEXT_ISOLATION:
+		{
+			struct intel_engine_cs *engine;
+			enum intel_engine_id id;
+
+			value = 0;
+			for_each_engine(engine, dev_priv, id)
+				if (engine->default_state)
+					value |= BIT(engine->uabi_class);
+		}
+		break;
 	case I915_PARAM_SLICE_MASK:
 		value = INTEL_INFO(dev_priv)->sseu.slice_mask;
 		if (!value)
diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h
index 65d06da62599..cce3c7b6a4ab 100644
--- a/include/uapi/drm/i915_drm.h
+++ b/include/uapi/drm/i915_drm.h
@@ -465,6 +465,20 @@ typedef struct drm_i915_irq_wait {
  */
 #define I915_PARAM_HAS_EXEC_FENCE_ARRAY  49
 
+/*
+ * Query whether every context (both per-file default and user created) is
+ * isolated (insofar as HW supports). If this parameter is not true, then
+ * freshly created contexts may inherit values from an existing context,
+ * rather than default HW values. If true, it also ensures (insofar as HW
+ * supports) that all state set by this context will not leak to any other
+ * context.
+ *
+ * As not every engine support contexts, the returned value reports the
+ * support of context isolation for individual engines by returning
+ * a bitmask of each engine class set to true if that class supports isolation.
+ */
+#define I915_PARAM_HAS_CONTEXT_ISOLATION 50
+
 typedef struct drm_i915_getparam {
 	__s32 param;
 	/*
-- 
2.15.0

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

  parent reply	other threads:[~2017-11-04 18:39 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-04 18:39 [CI 1/7] drm/i915: Define an engine class enum for the uABI Chris Wilson
2017-11-04 18:39 ` [CI 2/7] drm/i915: Force the switch to the i915->kernel_context Chris Wilson
2017-11-04 18:39 ` [CI 3/7] drm/i915: Move GT powersaving init to i915_gem_init() Chris Wilson
2017-11-04 18:39 ` [CI 4/7] drm/i915: Inline intel_modeset_gem_init() Chris Wilson
2017-11-04 18:39 ` [CI 5/7] drm/i915: Mark the context state as dirty/written Chris Wilson
2017-11-04 18:39 ` [CI 6/7] drm/i915: Record the default hw state after reset upon load Chris Wilson
2017-11-04 18:39 ` Chris Wilson [this message]
2017-11-04 18:59 ` ✓ Fi.CI.BAT: success for series starting with [CI,1/7] drm/i915: Define an engine class enum for the uABI Patchwork
2017-11-04 19:53 ` ✓ Fi.CI.IGT: " 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=20171104183918.19286-7-chris@chris-wilson.co.uk \
    --to=chris@chris-wilson.co.uk \
    --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.