From: Damien Lespiau <damien.lespiau@intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>,
Mika Kuoppala <mika.kuoppala@linux.intel.com>,
intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] tools/null_state_gen: generate null render state
Date: Fri, 9 May 2014 16:15:47 +0100 [thread overview]
Message-ID: <20140509151547.GF31479@strange.amr.corp.intel.com> (raw)
In-Reply-To: <20140506134740.GB476@nuc-i3427.alporthouse.com>
On Tue, May 06, 2014 at 02:47:40PM +0100, Chris Wilson wrote:
> Why does this work? It is neither the most minimal batch, nor the
> maximal. Which state is truly required? It looks like cargo-culted
> Chinese.
I'll have to echo this. It's really not obvious why this is needed.
If you look at the render engine power context for instance, it's just a
list of registers. So if we do:
- init_clock_gating() (bad name!)
- enable_rc6()
The render power context should contain the W/A we setup.
Would we do:
- enable_rc6()
-> enter rc6
-> power context save
- init_clock_gating()
-> exit rc6
-> power context restore
We'd end up restoring the reset value of the registers we touch in
init_clock_gating() (or the values after BIOS really), ie may not
contain all W/As and hang?
Note that init_clock_gating() is not the only place where we touch the
registers that are part of the power context(s), we do need to ensure
rc6 is only enabled after we setup those registers.
It could also be that something else than saving/restoring the power
contexts is happening at rc6 entry/exit, but the documentation is rather
sparse here and so we need to try talking to the hardware engineers
again.
So yes very much feels like cargo culting. I'd be nice to really
understand what's happening.
Now, a rather pragmatic approach would be to take those patches if they
actually paper over an issue, but the Tested-by: tags are not legion,
Mika didn't reproduce the issue on his BDW (IIRC) and Ben was saying
Kristen didn't confirm it was these exact patches that were solving
hangs for her (If I understood correctly on the call).
I do have to point out that it's a lot of code to review and rather full
of details, ie, we'll get it wrong-ish (but not enough to break
anything, hopefully).
--
Damien
next prev parent reply other threads:[~2014-05-09 15:16 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-06 13:26 [PATCH v2 0/2] render state initialization (bdw rc6) Mika Kuoppala
2014-05-06 13:26 ` [PATCH v2 1/2] drm/i915: add render state initialization Mika Kuoppala
2014-05-06 13:41 ` Chris Wilson
2014-05-06 14:30 ` [PATCH v3 " Mika Kuoppala
2014-05-14 10:24 ` Mateo Lozano, Oscar
2014-05-14 11:13 ` Damien Lespiau
2014-05-14 11:24 ` Mateo Lozano, Oscar
2014-05-06 14:34 ` [PATCH v2 " Mika Kuoppala
2014-05-06 13:26 ` [PATCH v2 2/2] drm/i915: add null render states for gen6, gen7 and gen8 Mika Kuoppala
2014-05-06 13:39 ` [PATCH] tools/null_state_gen: generate null render state Mika Kuoppala
2014-05-06 13:47 ` Chris Wilson
2014-05-06 14:44 ` Mika Kuoppala
2014-05-09 15:15 ` Damien Lespiau [this message]
2014-05-08 14:37 ` Damien Lespiau
2014-05-08 14:43 ` Damien Lespiau
2014-05-08 15:10 ` Mika Kuoppala
2014-05-09 14:46 ` Damien Lespiau
2014-05-14 10:06 ` Damien Lespiau
2014-05-14 10:08 ` [PATCH v2 0/2] render state initialization (bdw rc6) Damien Lespiau
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=20140509151547.GF31479@strange.amr.corp.intel.com \
--to=damien.lespiau@intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=intel-gfx@lists.freedesktop.org \
--cc=mika.kuoppala@linux.intel.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox