[Intel-gfx] [PATCH 1/2] drm/i915: Switch to fake context on older gens
Jani Nikula
jani.nikula at linux.intel.com
Fri Mar 14 15:43:16 CET 2014
On Fri, 14 Mar 2014, Mika Kuoppala <mika.kuoppala at linux.intel.com> wrote:
> We used to have per file descriptor hang stats for the
> i915_get_reset_stats_ioctl() and for default context banning.
>
> commit 0eea67eb26000657079b7fc41079097942339452
> Author: Ben Widawsky <ben at bwidawsk.net>
> Date: Fri Dec 6 14:11:19 2013 -0800
>
> drm/i915: Create a per file_priv default context
>
> made having separate hangstats in file_private redundant
> as i915_hw_context already contained hangstats. So
>
> commit c482972a086e03e6a6d27e4f7af2d868bf659648
> Author: Ben Widawsky <benjamin.widawsky at intel.com>
> Date: Fri Dec 6 14:11:20 2013 -0800
>
> drm/i915: Piggy back hangstats off of contexts
>
> consolidated the hangstats and enabled further improvements.
>
> commit 44e2c0705a19e09d7b0f30a591f92e473e5ef89e
> Author: Mika Kuoppala <mika.kuoppala at linux.intel.com>
> Date: Thu Jan 30 16:01:15 2014 +0200
>
> drm/i915: Use i915_hw_context to set reset stats
>
> tried to reap full benefits of consolidation but fell short
> as we never 'switch' to the fake private context on gens
> that don't have hw_contexts, so request->ctx remained NULL
> on those.
>
> Fix this by 'switching' to fake context so that when
> request is submitted to ring, proper context gets assigned
> to it.
>
> References: https://bugs.freedesktop.org/show_bug.cgi?id=76055
I'd say this still applies:
Tested-by: Lu Hua <huax.lu at intel.com>
> Signed-off-by: Mika Kuoppala <mika.kuoppala at intel.com>
> ---
> drivers/gpu/drm/i915/i915_gem_context.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
> index ce41cff..b5a5837 100644
> --- a/drivers/gpu/drm/i915/i915_gem_context.c
> +++ b/drivers/gpu/drm/i915/i915_gem_context.c
> @@ -775,9 +775,11 @@ int i915_switch_context(struct intel_ring_buffer *ring,
>
> BUG_ON(file && to == NULL);
>
> - /* We have the fake context, but don't supports switching. */
> - if (!HAS_HW_CONTEXTS(ring->dev))
> + /* We have the fake context */
> + if (!HAS_HW_CONTEXTS(ring->dev)) {
> + ring->last_context = to;
> return 0;
> + }
>
> return do_switch(ring, to);
> }
> --
> 1.7.9.5
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Jani Nikula, Intel Open Source Technology Center
More information about the Intel-gfx
mailing list