[PATCH v2 1/2] drm/i915: Add perf property support for context HW id

Chris Wilson chris at chris-wilson.co.uk
Fri Jul 21 11:04:05 UTC 2017


Quoting Zhenyu Wang (2017-07-19 06:39:48)
> +static struct i915_gem_context *
> +lookup_context_hw_id(struct drm_i915_private *dev_priv, unsigned int hw_id)
> +{
> +       struct i915_gem_context *ctx;
> +       int ret;
> +
> +       ret = i915_mutex_lock_interruptible(&dev_priv->drm);
> +       if (ret)
> +               return ERR_PTR(ret);
> +
> +       list_for_each_entry(ctx, &dev_priv->contexts.list, link) {
> +               if (!i915_gem_context_is_default(ctx))
> +                       continue;

This is still a massive what? Why ban normal contexts? Why are you not
banning the kernel context?

> +
> +               if (ctx->hw_id == hw_id) {
> +                       ret = 1;
> +                       i915_gem_context_get(ctx);
> +                       break;

Bad news, your reference counting is still broken. You actually need an
i915_gem_context_get_rcu() variant for pulling from this list.
-Chris


More information about the intel-gvt-dev mailing list