<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/gpu/drm/i915/intel_ringbuffer.c, branch linux-4.12.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.12.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.12.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2017-06-19T07:52:34Z</updated>
<entry>
<title>drm/i915: Differentiate between sw write location into ring and last hw read</title>
<updated>2017-06-19T07:52:34Z</updated>
<author>
<name>Chris Wilson</name>
</author>
<published>2017-06-15T13:11:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a21ef715fbb8210c50b1d684145f8acdf2339596'/>
<id>urn:sha1:a21ef715fbb8210c50b1d684145f8acdf2339596</id>
<content type='text'>
We need to keep track of the last location we ask the hw to read up to
(RING_TAIL) separately from our last write location into the ring, so
that in the event of a GPU reset we do not tell the HW to proceed into
a partially written request (which can happen if that request is waiting
for an external signal before being executed).

v2: Refactor intel_ring_reset() (Mika)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100144
Testcase: igt/gem_exec_fence/await-hang
Fixes: 821ed7df6e2a ("drm/i915: Update reset path to fix incomplete requests")
Fixes: d55ac5bf97c6 ("drm/i915: Defer transfer onto execution timeline to actual hw submission")
Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Cc: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt;
Cc: Mika Kuoppala &lt;mika.kuoppala@intel.com&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/20170425130049.26147-1-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala &lt;mika.kuoppala@intel.com&gt;
(cherry picked from commit e6ba9992de6c63fe86c028b4876338e1cb7dac34)
Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/20170615131129.3061-1-chris@chris-wilson.co.uk
</content>
</entry>
<entry>
<title>drm/i915: Refactor tests for validity of RING_TAIL</title>
<updated>2017-03-27T14:03:53Z</updated>
<author>
<name>Chris Wilson</name>
</author>
<published>2017-03-27T13:14:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ed1501d45136da125a89b1a5728a783564e6491f'/>
<id>urn:sha1:ed1501d45136da125a89b1a5728a783564e6491f</id>
<content type='text'>
Whilst I like having the assertions clearly visible in the code, they
are quite repetitious! As we find new limits we want to incorporate into
the set of assertions, it make sense to refactor them to a common
routine.

v2: Add a guc holdout.

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/20170327131412.20293-1-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala &lt;mika.kuoppala@intel.com&gt;
</content>
</entry>
<entry>
<title>drm/i915: Assert that the request-&gt;tail fits within the ring</title>
<updated>2017-03-27T14:03:21Z</updated>
<author>
<name>Chris Wilson</name>
</author>
<published>2017-03-27T13:00:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a91fdf1293044535a13fb9a434101f363dbe7e3c'/>
<id>urn:sha1:a91fdf1293044535a13fb9a434101f363dbe7e3c</id>
<content type='text'>
In addition to being qword-aligned, the RING_TAIL offset must be within
the ring!

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/20170327130009.4678-2-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala &lt;mika.kuoppala@intel.com&gt;
</content>
</entry>
<entry>
<title>drm/i915: Fix semaphore emission for BDW+ RCS ringbuffer emission</title>
<updated>2017-03-24T17:10:27Z</updated>
<author>
<name>Chris Wilson</name>
</author>
<published>2017-03-24T15:17:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6f9b850bec05ba8b08c504112808973259e41140'/>
<id>urn:sha1:6f9b850bec05ba8b08c504112808973259e41140</id>
<content type='text'>
The required number of dwords for semaphore emission on BDW RCS is 8,
not 6 - leading to ring buffer corruption and immediate GPU hangs when
using ringbuffer submission.

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/20170324151724.32640-2-chris@chris-wilson.co.uk
Reviewed-by: Michał Winiarski &lt;michal.winiarski@intel.com&gt;
</content>
</entry>
<entry>
<title>drm/i915: Restore marking context objects as dirty on pinning</title>
<updated>2017-03-23T09:55:57Z</updated>
<author>
<name>Chris Wilson</name>
</author>
<published>2017-03-22T20:59:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5d4bac5503fcc67dd7999571e243cee49371aef7'/>
<id>urn:sha1:5d4bac5503fcc67dd7999571e243cee49371aef7</id>
<content type='text'>
Commit e8a9c58fcd9a ("drm/i915: Unify active context tracking between
legacy/execlists/guc") converted the legacy intel_ringbuffer submission
to the same context pinning mechanism as execlists - that is to pin the
context until the subsequent request is retired. Previously it used the
vma retirement of the context object to keep itself pinned until the
next request (after i915_vma_move_to_active()). In the conversion, I
missed that the vma retirement was also responsible for marking the
object as dirty. Mark the context object as dirty when pinning
(equivalent to execlists) which ensures that if the context is swapped
out due to mempressure or suspend/hibernation, when it is loaded back in
it does so with the previous state (and not all zero).

Fixes: e8a9c58fcd9a ("drm/i915: Unify active context tracking between legacy/execlists/guc")
Reported-by: Dennis Gilmore &lt;dennis@ausil.us&gt;
Reported-by: Mathieu Marquer &lt;mathieu.marquer@gmail.com&gt;
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99993
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100181
Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Cc: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt;
Cc: &lt;drm-intel-fixes@lists.freedesktop.org&gt; # v4.11-rc1
Link: http://patchwork.freedesktop.org/patch/msgid/20170322205930.12762-1-chris@chris-wilson.co.uk
Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt;
</content>
</entry>
<entry>
<title>drm/i915: Remove intel_ring.last_retired_head</title>
<updated>2017-03-21T14:21:50Z</updated>
<author>
<name>Chris Wilson</name>
</author>
<published>2017-03-21T10:25:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fe085f13c7901203445fd2ab26c0f499313b8258'/>
<id>urn:sha1:fe085f13c7901203445fd2ab26c0f499313b8258</id>
<content type='text'>
Storing the position of the breadcrumb of the last retired request as
a separate last_retired_head is superfluous as we always copy that into
head prior to recalculation of the intel_ring.space.

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Reviewed-by: Joonas Lahtinen &lt;joonas.lahtinen@linux.intel.com&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/20170321102552.24357-1-chris@chris-wilson.co.uk
</content>
</entry>
<entry>
<title>drm/i915: Assert that the context pin_counts do not overflow</title>
<updated>2017-03-16T20:48:58Z</updated>
<author>
<name>Chris Wilson</name>
</author>
<published>2017-03-16T17:16:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a533b4ba776c16bce53b9739c47409ed3cfe5776'/>
<id>urn:sha1:a533b4ba776c16bce53b9739c47409ed3cfe5776</id>
<content type='text'>
This should be impossible, but let's assert that we do not pin a context
4 billion times before retiring!

v2: Fix the assertion -- the patch had just one job to do!

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Cc: Tvrtko Ursulin &lt;tvrtko.ursulin@linux.intel.com&gt;
Cc: Joonas Lahtinen &lt;joonas.lahtinen@linux.intel.com&gt;
Cc: Mika Kuoppala &lt;mika.kuoppala@intel.com&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/20170316171628.3228-1-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala &lt;mika.kuoppala@intel.com&gt;
</content>
</entry>
<entry>
<title>drm/i915: Move engine-&gt;submit_request selection to a vfunc</title>
<updated>2017-03-16T17:17:12Z</updated>
<author>
<name>Chris Wilson</name>
</author>
<published>2017-03-16T17:13:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ff44ad51ebf8e4693bd66ae41aa37a6bc88a134f'/>
<id>urn:sha1:ff44ad51ebf8e4693bd66ae41aa37a6bc88a134f</id>
<content type='text'>
It turns out that we may want to restore the original
engine-&gt;submit_request (and engine-&gt;schedule) callbacks from more than
just the guc &lt;-&gt; execlists transition. Move this to a vfunc so we can
have a common interface.

v2: Move initial selection to intel_engines_init_common(), repaint vfunc
with engine-&gt;set_default_submission (and a similar colour for the
helper).

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Cc: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt;
Cc: Mika Kuoppala &lt;mika.kuoppala@intel.com&gt;
Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/20170316171305.12972-2-chris@chris-wilson.co.uk
</content>
</entry>
<entry>
<title>drm/i915: Reduce context alignment</title>
<updated>2017-02-27T16:01:47Z</updated>
<author>
<name>Chris Wilson</name>
</author>
<published>2017-02-27T13:59:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=afeddf50811253ee512fb9192cfb443891929776'/>
<id>urn:sha1:afeddf50811253ee512fb9192cfb443891929776</id>
<content type='text'>
No hardware was ever shipped that needed more than 4096 byte alignment
and future hardware will not use this legacy path. So reduce the
alignment to make it easier and quicker to launch workloads.

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Reviewed-by: Mika Kuoppala &lt;mika.kuoppala@linux.intel.com&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/20170227135913.8056-3-chris@chris-wilson.co.uk
</content>
</entry>
<entry>
<title>drm/i915: Assert that the request-&gt;tail is always qword aligned</title>
<updated>2017-02-20T14:32:25Z</updated>
<author>
<name>Chris Wilson</name>
</author>
<published>2017-02-17T16:38:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=944a36d472be642d0d082d2480fe2b40046602a9'/>
<id>urn:sha1:944a36d472be642d0d082d2480fe2b40046602a9</id>
<content type='text'>
The hardware requires that the tail pointer only advance in qword units,
so assert that the value we write is aligned to qwords, and similarly
enforce this restriction onto the request-&gt;tail.

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Cc: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt;
Cc: Mika Kuoppala &lt;mika.kuoppala@linux.intel.com&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/20170217163833.731-1-chris@chris-wilson.co.uk
Reviewed-by: Michał Winiarski &lt;michal.winiarski@intel.com&gt;
</content>
</entry>
</feed>
