All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Ben Widawsky <ben@bwidawsk.net>
Cc: Ben Widawsky <benjamin.widawsky@intel.com>,
	intel-gfx@lists.freedesktop.org, miku@iki.fi,
	mika.kuoppala@intel.com
Subject: Re: [PATCH 1/5] drm/i915: Fix forcewake counts for gen8
Date: Mon, 24 Feb 2014 13:27:09 +0200	[thread overview]
Message-ID: <20140224112709.GL3852@intel.com> (raw)
In-Reply-To: <20140221193847.GA7594@bwidawsk.net>

On Fri, Feb 21, 2014 at 11:38:48AM -0800, Ben Widawsky wrote:
> On Fri, Feb 21, 2014 at 05:31:59PM +0200, mika.kuoppala@intel.com wrote:
> > From: Mika Kuoppala <mika.kuoppala@intel.com>
> > 
> > Sometimes generic driver code gets forcewake explicitly by
> > gen6_gt_force_wake_get(), which check forcewake_count before accessing
> > hardware. However the register access with gen8_write function access
> > low level hw accessors directly, ignoring the forcewake_count. This
> > leads to nested forcewake get from hardware, in ring init and possibly
> > elsewhere, causing forcewake ack clear errors and/or hangs.
> > 
> > Fix this by checking the forcewake count also in gen8_write
> > 
> > v2: Read side doesn't care about shadowed registers,
> >     Remove __needs_put funkiness from gen8_write. (Ville)
> >     Improved commit message.
> > 
> > References: https://bugs.freedesktop.org/show_bug.cgi?id=74007
> > Cc: Ben Widawsky <benjamin.widawsky@intel.com>
> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
> > Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
> 
> For those concerned with the performance implication of the extra if
> (if anyone at all cares, it's Chris) - I suppose we could also just add
> the lock to gen6_gt_force_wake_get/put.

Two things:
a) I don't understand what you mean here. uncore.lock already protects
the forcewake count in gen6_gt_force_wake_get/put. Also there's no way
to avoid the branch here since doing a .force_wake_put() w/o checking
the forcewake count is never ok.

b) The cost of branch should be a drop in the ocean compared to the
cost of the register reads/writes in .forcewake_get/put.

-- 
Ville Syrjälä
Intel OTC

  parent reply	other threads:[~2014-02-24 11:27 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-21 15:31 [PATCH 0/5] bdw forcewake fixes mika.kuoppala
2014-02-21 15:31 ` [PATCH 1/5] drm/i915: Fix forcewake counts for gen8 mika.kuoppala
2014-02-21 19:38   ` Ben Widawsky
2014-02-21 19:42     ` Ben Widawsky
2014-02-21 19:54     ` Chris Wilson
2014-02-24 11:27     ` Ville Syrjälä [this message]
2014-02-24 20:29       ` Ben Widawsky
2014-02-21 15:32 ` [PATCH 2/5] drm/i915: Do forcewake reset on gen8 mika.kuoppala
2014-02-21 15:32 ` [PATCH 3/5] drm/i915: Don't access fifodbg registers " mika.kuoppala
2014-02-21 15:36   ` Chris Wilson
2014-02-21 16:47     ` Mika Kuoppala
2014-02-21 15:32 ` [PATCH 4/5] drm/i915: Always set fifo count to zero in gen6_reset mika.kuoppala
2014-02-21 15:32 ` [PATCH 5/5] drm/i915: No need to put forcewake after a reset mika.kuoppala
2014-03-05 14:58   ` Daniel Vetter
2014-03-05 16:11     ` Mika Kuoppala

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=20140224112709.GL3852@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=ben@bwidawsk.net \
    --cc=benjamin.widawsky@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=mika.kuoppala@intel.com \
    --cc=miku@iki.fi \
    /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.