<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c, branch linux-4.17.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.17.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.17.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2018-02-12T15:31:01Z</updated>
<entry>
<title>drm/etnaviv: replace hangcheck with scheduler timeout</title>
<updated>2018-02-12T15:31:01Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2017-12-06T09:53:27Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=6d7a20c0776036115c6e22bc673d645d524c4b8a'/>
<id>urn:sha1:6d7a20c0776036115c6e22bc673d645d524c4b8a</id>
<content type='text'>
This replaces the etnaviv internal hangcheck logic with the job timeout
handling provided by the DRM scheduler. This simplifies the driver further
and allows to replay jobs after a GPU reset, so only minimal state is lost.

This introduces a user-visible change in that we don't allow jobs to run
indefinitely as long as they make progress anymore, as this introduces
quality of service issues when multiple processes are using the GPU.
Userspace is now responsible to flush jobs in a way that the finish in a
reasonable time, where reasonable is currently defined as less than 500ms.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>drm/etnaviv: lock BOs after all other submit work is done</title>
<updated>2018-02-12T15:31:00Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2017-12-05T09:55:02Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=e0580254ae5c70f9fad3e24c20b92287ad817d8e'/>
<id>urn:sha1:e0580254ae5c70f9fad3e24c20b92287ad817d8e</id>
<content type='text'>
Populating objects, adding them to the GPU VM and patching/validating
the command stream might take a lot of CPU time. There is no reason to
hold all object reservations during that time.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>drm/etnaviv: move dependency handling to scheduler</title>
<updated>2018-02-12T15:31:00Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2017-12-04T18:24:06Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=683da226f88dde7bf68940c21418995b63baae2f'/>
<id>urn:sha1:683da226f88dde7bf68940c21418995b63baae2f</id>
<content type='text'>
Move the fence dependency handling to the scheduler where it belongs.
Jobs with unsignaled dependencies just get to sit in the scheduler queue
without holding any locks.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>drm/etnaviv: hook up DRM GPU scheduler</title>
<updated>2018-02-12T15:30:59Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2017-12-04T17:41:58Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=e93b6deeb45a781489f4ceaa97f9545a3cbebb81'/>
<id>urn:sha1:e93b6deeb45a781489f4ceaa97f9545a3cbebb81</id>
<content type='text'>
This hooks in the DRM GPU scheduler. No improvement yet, as all the
dependency handling is still done in etnaviv_gem_submit. This just
replaces the actual GPU submit by passing through the scheduler.

Allows to get rid of the retire worker, as this is now driven by the
scheduler.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>drm/etnaviv: track fences by IDR instead of seqno</title>
<updated>2018-02-12T15:30:58Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2017-11-29T13:49:04Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=8bc4d885bd42e9a1d47a53aa4efbb818597ef9a0'/>
<id>urn:sha1:8bc4d885bd42e9a1d47a53aa4efbb818597ef9a0</id>
<content type='text'>
This moves away from using the internal seqno as the userspace fence
reference. By moving to a generic ID, we can later replace the internal
fence by something different than the etnaviv seqno fence.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
Reviewed-by: Philipp Zabel &lt;p.zabel@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>drm/etnaviv: couple runtime PM management to submit object lifetime</title>
<updated>2018-01-02T16:34:59Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2017-11-24T16:56:29Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=8bda1516fb4acf4bd6eaeb746258a9f536aeeb5d'/>
<id>urn:sha1:8bda1516fb4acf4bd6eaeb746258a9f536aeeb5d</id>
<content type='text'>
As long as there is an active submit, we want the GPU to stay awake. This
is slightly complicated by the fact that we really want to wake the GPU
at the last possible moment to achieve maximum power savings.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>drm/etnaviv: move GPU active handling to bo pin/unpin</title>
<updated>2018-01-02T16:34:10Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2017-11-27T16:46:15Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=5b223e94a8842e5e9deaa1b8198fc52558fee782'/>
<id>urn:sha1:5b223e94a8842e5e9deaa1b8198fc52558fee782</id>
<content type='text'>
The active count is used to check if the BO is idle, where idle is defined
as not active on the GPU and all VM mappings and reference counts dropped
to the initial state. As the idling of the mappings and references now only
happens in the submit cleanup, the active state handling must be moved to
the same location in order to keep the userspace semantics.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>drm/etnaviv: move cmdbuf into submit object</title>
<updated>2018-01-02T16:33:36Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2017-11-24T15:56:37Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=2f9225dbc09abe7cacb9820ebdeef5b6c0eb9c72'/>
<id>urn:sha1:2f9225dbc09abe7cacb9820ebdeef5b6c0eb9c72</id>
<content type='text'>
Less dynamic allocations and slims down the cmdbuf object to only the
required information, as everything else is already available in the
submit object.

This also simplifies buffer and mappings lifetime management, as they
are now exlusively attached to the submit object and not additionally
to the cmdbuf.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>drm/etnaviv: move exec_state to submit object</title>
<updated>2018-01-02T16:32:40Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2017-11-24T14:16:58Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=797b0159e6b9124c24968c9b2b4631eba7c112b9'/>
<id>urn:sha1:797b0159e6b9124c24968c9b2b4631eba7c112b9</id>
<content type='text'>
We'll need this in some places where only the submit is available. Also
this is a first step at slimming down the cmdbuf object.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>drm/etnaviv: move PMRs to submit object</title>
<updated>2018-01-02T16:31:59Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2017-11-24T11:02:38Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=ef146c00e2c29c5f926c6a7e9dc354c0cbeb2818'/>
<id>urn:sha1:ef146c00e2c29c5f926c6a7e9dc354c0cbeb2818</id>
<content type='text'>
To make them available to the event worker even after the actual
command stream execution has finished.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
</content>
</entry>
</feed>
