<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/gpu/drm/i915/intel_ringbuffer.h, branch linux-4.2.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.2.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.2.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-07-13T20:42:39Z</updated>
<entry>
<title>drm/i915: Snapshot seqno of most recently submitted request.</title>
<updated>2015-07-13T20:42:39Z</updated>
<author>
<name>Tomas Elf</name>
</author>
<published>2015-07-09T14:30:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=94f7bbe1509731bdef651d7fb235b2c31fb23be8'/>
<id>urn:sha1:94f7bbe1509731bdef651d7fb235b2c31fb23be8</id>
<content type='text'>
The hang checker needs to inspect whether or not the ring request list is empty
as well as if the given engine has reached or passed the most recently
submitted request. The problem with this is that the hang checker cannot grab
the struct_mutex, which is required in order to safely inspect requests since
requests might be deallocated during inspection. In the past we've had kernel
panics due to this very unsynchronized access in the hang checker.

One solution to this problem is to not inspect the requests directly since
we're only interested in the seqno of the most recently submitted request - not
the request itself. Instead the seqno of the most recently submitted request is
stored separately, which the hang checker then inspects, circumventing the
issue of synchronization from the hang checker entirely.

This fixes a regression introduced in

commit 44cdd6d219bc64f6810b8ed0023a4d4db9e0fe68
Author: John Harrison &lt;John.C.Harrison@Intel.com&gt;
Date:   Mon Nov 24 18:49:40 2014 +0000

    drm/i915: Convert 'ring_idle()' to use requests not seqnos

v2 (Chris Wilson):
- Pass current engine seqno to ring_idle() from i915_hangcheck_elapsed() rather
than compute it over again.
- Remove extra whitespace.

Issue: VIZ-5998
Signed-off-by: Tomas Elf &lt;tomas.elf@intel.com&gt;
Cc: stable@vger.kernel.org
Reviewed-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
[danvet: Add regressing commit citation provided by Chris.]
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
</entry>
<entry>
<title>drm/i915: Extend the parser to check register writes against a mask/value pair.</title>
<updated>2015-06-15T13:00:43Z</updated>
<author>
<name>Francisco Jerez</name>
</author>
<published>2015-05-29T13:44:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c1091b25f547d45ffdcb443a3790aed652fb9b48'/>
<id>urn:sha1:c1091b25f547d45ffdcb443a3790aed652fb9b48</id>
<content type='text'>
In some cases it might be unnecessary or dangerous to give userspace
the right to write arbitrary values to some register, even though it
might be desirable to give it control of some of its bits.  This patch
extends the register whitelist entries to contain a mask/value pair in
addition to the register offset.  For registers with non-zero mask,
any LRM writes and LRI writes where the bits of the immediate given by
the mask don't match the specified value will be rejected.

This will be used in my next patch to grant userspace partial write
access to some sensitive registers.

Signed-off-by: Francisco Jerez &lt;currojerez@riseup.net&gt;
Reviewed-by: Zhigang Gong &lt;zhigang.gong@linux.intel.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
</content>
</entry>
<entry>
<title>drm/i915: Split the batch pool by engine</title>
<updated>2015-04-10T06:56:04Z</updated>
<author>
<name>Chris Wilson</name>
</author>
<published>2015-04-07T15:20:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=06fbca713e8e4a04c3506a64978969be580cd077'/>
<id>urn:sha1:06fbca713e8e4a04c3506a64978969be580cd077</id>
<content type='text'>
I woke up one morning and found 50k objects sitting in the batch pool
and every search seemed to iterate the entire list... Painting the
screen in oils would provide a more fluid display.

One issue with the current design is that we only check for retirements
on the current ring when preparing to submit a new batch. This means
that we can have thousands of "active" batches on another ring that we
have to walk over. The simplest way to avoid that is to split the pools
per ring and then our LRU execution ordering will also ensure that the
inactive buffers remain at the front.

v2: execlists still requires duplicate code.
v3: execlists requires more duplicate code

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Reviewed-by:  Tvrtko Ursulin &lt;tvrtko.ursulin@linux.intel.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
</entry>
<entry>
<title>drm/i915: Move common request allocation code into a common function</title>
<updated>2015-04-01T05:54:30Z</updated>
<author>
<name>John Harrison</name>
</author>
<published>2015-03-19T12:30:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6689cb2b62065b5417aeda13d57d61b437b2126e'/>
<id>urn:sha1:6689cb2b62065b5417aeda13d57d61b437b2126e</id>
<content type='text'>
The request allocation code is largely duplicated between legacy mode and
execlist mode. The actual difference between the two versions of the code is
pretty minimal.

This patch moves the common code out into a separate function. This is then
called by the execution specific version prior to setting up the one different
value.

For: VIZ-5190
Signed-off-by: John Harrison &lt;John.C.Harrison@Intel.com&gt;
Reviewed-by: Tomas Elf &lt;tomas.elf@intel.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
</entry>
<entry>
<title>drm/i915: add frontbuffer tracking to FBC</title>
<updated>2015-03-17T21:29:56Z</updated>
<author>
<name>Paulo Zanoni</name>
</author>
<published>2015-02-13T19:23:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dbef0f15b5c83231dacb214dbf9a6dba063ca21c'/>
<id>urn:sha1:dbef0f15b5c83231dacb214dbf9a6dba063ca21c</id>
<content type='text'>
Kill the blt/render tracking we currently have and use the frontbuffer
tracking infrastructure.

Don't enable things by default yet.

v2: (Rodrigo) Fix small conflict on rebase and typo at subject.
v3: (Paulo) Rebase on RENDER_CS change.
v4: (Paulo) Rebase.
v5: (Paulo) Simplify: flushes don't have origin (Daniel).
            Also rebase due to patch order changes.

Signed-off-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;
Signed-off-by: Paulo Zanoni &lt;paulo.r.zanoni@intel.com&gt;
Reviewed-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
</entry>
<entry>
<title>drm/i915: Rename 'flags' to 'dispatch_flags' for better code reading</title>
<updated>2015-02-25T21:43:29Z</updated>
<author>
<name>John Harrison</name>
</author>
<published>2015-02-13T11:48:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8e004efc16541e7f6e35673449195db5d1f92f40'/>
<id>urn:sha1:8e004efc16541e7f6e35673449195db5d1f92f40</id>
<content type='text'>
There is a flags word that is passed through the execbuffer code path all the
way from initial decoding of the user parameters down to the very final dispatch
buffer call. It is simply called 'flags'. Unfortuantely, there are many other
flags words floating around in the same blocks of code. Even more once the GPU
scheduler arrives.

This patch makes it more obvious exactly which flags word is which by renaming
'flags' to 'dispatch_flags'. Note that the bit definitions for this flags word
already have an 'I915_DISPATCH_' prefix on them and so are not quite so
ambiguous.

OTC-Jira: VIZ-1587
Signed-off-by: John Harrison &lt;John.C.Harrison@Intel.com&gt;
[danvet: Resolve conflict with Chris' rework of the bb parsing.]
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
</entry>
<entry>
<title>drm/i915: Shift driver's HWSP usage out of reserved range</title>
<updated>2015-02-24T10:50:32Z</updated>
<author>
<name>Thomas Daniel</name>
</author>
<published>2015-02-18T11:48:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b07da53c79ba6480759c1ad352a96b96c7b97c7a'/>
<id>urn:sha1:b07da53c79ba6480759c1ad352a96b96c7b97c7a</id>
<content type='text'>
As of Gen6, the general purpose area of the hardware status page has shrunk and
now begins at dword 0x30.  i915 driver uses dword 0x20 to store the seqno which
is now reserved.  So shift our HWSP dwords up into the general purpose range
before this bites us.

Note that all available documentation just says this is reserved
without going into details about what it's used for.

Signed-off-by: Thomas Daniel &lt;thomas.daniel@intel.com&gt;
Reviewed-by: Dave Gordon &lt;david.s.gordon@intel.com&gt;
[danvet: Add clarification from Thomas that unfortunately Bspec is
silent on what "reserverd" precisely means.]
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
</entry>
<entry>
<title>drm/i915: Make intel_ring_setup_status_page() static</title>
<updated>2015-02-13T22:28:27Z</updated>
<author>
<name>Damien Lespiau</name>
</author>
<published>2015-02-10T19:32:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=af75f2691870c575030bbd42adf17457afbe7242'/>
<id>urn:sha1:af75f2691870c575030bbd42adf17457afbe7242</id>
<content type='text'>
This function is only used in intel_ringbuffer.c, so restrict it to that
file. The function was moved around to avoid a forward declaration and
group it with its user.

Signed-off-by: Damien Lespiau &lt;damien.lespiau@intel.com&gt;
[danvet: Squash in fixup from Wu Fengguang.]
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
</entry>
<entry>
<title>drm/i915: Remove FIXME_lrc_ctx backpointer</title>
<updated>2015-01-27T08:50:53Z</updated>
<author>
<name>Nick Hoath</name>
</author>
<published>2015-01-15T13:10:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=21076372afe711072b9a447f22a098691dd0b2cb'/>
<id>urn:sha1:21076372afe711072b9a447f22a098691dd0b2cb</id>
<content type='text'>
The first pass implementation of execlists required a backpointer to the context to be held
in the intel_ringbuffer. However the context pointer is available higher in the call stack.
Remove the backpointer from the ring buffer structure and instead pass it down through the
call stack.

v2: Integrate this changeset with the removal of duplicate request/execlist queue item members.
v3: Rebase
v4: Rebase. Remove passing of context when the request is passed.

Signed-off-by: Nick Hoath &lt;nicholas.hoath@intel.com&gt;
Reviewed-by: Thomas Daniel &lt;thomas.daniel@intel.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
</entry>
<entry>
<title>drm/i915: Removed duplicate members from submit_request</title>
<updated>2015-01-27T08:50:52Z</updated>
<author>
<name>Nick Hoath</name>
</author>
<published>2015-01-15T13:10:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=72f95afa5faaf899f7344879b6ccd5f0cb271b28'/>
<id>urn:sha1:72f95afa5faaf899f7344879b6ccd5f0cb271b28</id>
<content type='text'>
Where there were duplicate variables for the tail, context and ring (engine)
in the gem request and the execlist queue item, use the one from the request
and remove the duplicate from the execlist queue item.

Issue: VIZ-4274

v1: Rebase
v2: Fixed build issues. Keep separate postfix &amp; tail pointers as these are
used in different ways. Reinserted missing full tail pointer update.

Signed-off-by: Nick Hoath &lt;nicholas.hoath@intel.com&gt;
Reviewed-by: Thomas Daniel &lt;thomas.daniel@intel.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
</entry>
</feed>
