From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>,
Intel-gfx@lists.freedesktop.org,
Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Subject: Re: [PATCH v4] drm/i915: Execlists small cleanups and micro-optimisations
Date: Mon, 29 Feb 2016 10:45:34 +0000 [thread overview]
Message-ID: <56D4214E.5080804@linux.intel.com> (raw)
In-Reply-To: <20160226202448.GC31502@nuc-i3427.alporthouse.com>
On 26/02/16 20:24, Chris Wilson wrote:
> On Fri, Feb 26, 2016 at 04:58:32PM +0000, Tvrtko Ursulin wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>>
>> Assorted changes in the areas of code cleanup, reduction of
>> invariant conditional in the interrupt handler and lock
>> contention and MMIO access optimisation.
>>
>> * Remove needless initialization.
>> * Improve cache locality by reorganizing code and/or using
>> branch hints to keep unexpected or error conditions out
>> of line.
>> * Favor busy submit path vs. empty queue.
>> * Less branching in hot-paths.
>>
>> v2:
>>
>> * Avoid mmio reads when possible. (Chris Wilson)
>> * Use natural integer size for csb indices.
>> * Remove useless return value from execlists_update_context.
>> * Extract 32-bit ppgtt PDPs update so it is out of line and
>> shared with two callers.
>> * Grab forcewake across all mmio operations to ease the
>> load on uncore lock and use chepear mmio ops.
>>
>> v3:
>>
>> * Removed some more pointless u8 data types.
>> * Removed unused return from execlists_context_queue.
>> * Commit message updates.
>>
>> v4:
>> * Unclumsify the unqueue if statement. (Chris Wilson)
>> * Hide forcewake from the queuing function. (Chris Wilson)
>>
>> Version 3 now makes the irq handling code path ~20% smaller on
>> 48-bit PPGTT hardware, and a little bit less elsewhere. Hot
>> paths are mostly in-line now and hammering on the uncore
>> spinlock is greatly reduced together with mmio traffic to an
>> extent.
>>
>> Benchmarking with "gem_latency -n 100" (keep submitting
>> batches with 100 nop instruction) shows approximately 4% higher
>> throughput, 2% less CPU time and 22% smaller latencies. This was
>> on a big-core while small-cores could benefit even more.
>
> Just add a quick comment about "gem_latency -n 0" suggesting an oddity
> with synchronous workloads that bears further study (just so that we
> have the hint/reminder about the test case to run).
>
This ok?
"""
One unexplained result is with "gem_latency -n 0" (dispatching
empty batches) which shows 5% more throughput, 8% less CPU time,
25% better producer and consumer latencies, but 15% higher
dispatch latency which looks like a possible measuring artifact.
"""
>> Most likely reason for the improvements are the MMIO
>> optimization and uncore lock traffic reduction.
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Thanks!
Regards,
Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2016-02-29 10:45 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-26 15:37 [PATCH] drm/i915: Execlists small cleanups and micro-optimisations Tvrtko Ursulin
2016-02-26 16:03 ` ✗ Fi.CI.BAT: failure for " Patchwork
2016-02-26 16:36 ` [PATCH] " Chris Wilson
2016-02-26 16:58 ` [PATCH v4] " Tvrtko Ursulin
2016-02-26 20:24 ` Chris Wilson
2016-02-29 10:45 ` Tvrtko Ursulin [this message]
2016-02-29 10:53 ` Chris Wilson
2016-02-29 11:01 ` Tvrtko Ursulin
2016-02-29 11:13 ` Chris Wilson
2016-02-29 11:40 ` Tvrtko Ursulin
2016-02-29 11:48 ` Chris Wilson
2016-02-29 11:59 ` Tvrtko Ursulin
2016-03-01 10:21 ` Tvrtko Ursulin
2016-03-01 10:32 ` Chris Wilson
2016-03-01 10:41 ` Tvrtko Ursulin
2016-03-01 10:57 ` Chris Wilson
2016-03-01 10:32 ` Chris Wilson
2016-02-26 17:27 ` ✗ Fi.CI.BAT: failure for drm/i915: Execlists small cleanups and micro-optimisations (rev2) Patchwork
2016-02-29 10:16 ` Tvrtko Ursulin
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=56D4214E.5080804@linux.intel.com \
--to=tvrtko.ursulin@linux.intel.com \
--cc=Intel-gfx@lists.freedesktop.org \
--cc=chris@chris-wilson.co.uk \
--cc=tvrtko.ursulin@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