Re: [PATCH] drm/i915: Simplify vcs/bsc engine selection

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 16/03/2023 15:48, Das, Nirmoy wrote:

On 3/16/2023 3:27 PM, Tvrtko Ursulin wrote:
From: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx>

No need to look at the mask of present engines when we already have a
count stored ever since e2d0ff3525b9 ("drm/i915: Count engine instances
per uabi class").

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx>
Cc: Jonathan Cavitt <jonathan.cavitt@xxxxxxxxx>


Reviewed-by: Nirmoy Das <nirmoy.das@xxxxxxxxx>

Pushed, thanks for the review!

Regards,

Tvrtko

---
  drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 10 +++-------
  1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index 9dce2957b4e5..3aeede6aee4d 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -2449,11 +2449,6 @@ static int eb_submit(struct i915_execbuffer *eb)
      return err;
  }
-static int num_vcs_engines(struct drm_i915_private *i915)
-{
-    return hweight_long(VDBOX_MASK(to_gt(i915)));
-}
-
  /*
   * Find one BSD ring to dispatch the corresponding BSD command.
   * The engine index is returned.
@@ -2467,7 +2462,7 @@ gen8_dispatch_bsd_engine(struct drm_i915_private *dev_priv,
      /* Check whether the file_priv has already selected one ring. */
      if ((int)file_priv->bsd_engine < 0)
          file_priv->bsd_engine =
-            get_random_u32_below(num_vcs_engines(dev_priv));
+ get_random_u32_below(dev_priv->engine_uabi_class_count[I915_ENGINE_CLASS_VIDEO]);
      return file_priv->bsd_engine;
  }
@@ -2655,7 +2650,8 @@ eb_select_legacy_ring(struct i915_execbuffer *eb)
          return -1;
      }
-    if (user_ring_id == I915_EXEC_BSD && num_vcs_engines(i915) > 1) {
+    if (user_ring_id == I915_EXEC_BSD &&
+        i915->engine_uabi_class_count[I915_ENGINE_CLASS_VIDEO] > 1) {
          unsigned int bsd_idx = args->flags & I915_EXEC_BSD_MASK;
          if (bsd_idx == I915_EXEC_BSD_DEFAULT) {



[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux