From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>,
Dave Gordon <david.s.gordon@intel.com>,
intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 10/15] drm/i915: Enable GuC firmware log
Date: Tue, 16 Jun 2015 13:29:15 +0100 [thread overview]
Message-ID: <5580169B.3010604@linux.intel.com> (raw)
In-Reply-To: <20150616114057.GT28462@nuc-i3427.alporthouse.com>
On 06/16/2015 12:40 PM, Chris Wilson wrote:
> On Tue, Jun 16, 2015 at 10:26:40AM +0100, Tvrtko Ursulin wrote:
>>
>> On 06/15/2015 07:36 PM, Dave Gordon wrote:
>>> From: Alex Dai <yu.dai@intel.com>
>>>
>>> Allocate a GEM object to hold GuC log data. A debugfs interface
>>> (i915_guc_log_dump) is provided to print out the log content.
>>>
>>> Issue: VIZ-4884
>>> Signed-off-by: Alex Dai <yu.dai@intel.com>
>>> Signed-off-by: Dave Gordon <david.s.gordon@intel.com>
>>> ---
>>> drivers/gpu/drm/i915/i915_debugfs.c | 29 +++++++++++++++++++
>>> drivers/gpu/drm/i915/i915_guc_submission.c | 43 ++++++++++++++++++++++++++++
>>> 2 files changed, 72 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
>>> index c52a745..b0aa4af 100644
>>> --- a/drivers/gpu/drm/i915/i915_debugfs.c
>>> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
>>> @@ -2388,6 +2388,34 @@ static int i915_guc_load_status_info(struct seq_file *m, void *data)
>>> return 0;
>>> }
>>>
>>> +static int i915_guc_log_dump(struct seq_file *m, void *data)
>>> +{
>>> + struct drm_info_node *node = m->private;
>>> + struct drm_device *dev = node->minor->dev;
>>> + struct drm_i915_private *dev_priv = dev->dev_private;
>>> + struct drm_i915_gem_object *log_obj = dev_priv->guc.log_obj;
>>> + u32 *log;
>>> + int i = 0, pg;
>>> +
>>> + if (!log_obj)
>>> + return 0;
>>> +
>>> + for (pg = 0; pg < log_obj->base.size / PAGE_SIZE; pg++) {
>>> + log = kmap_atomic(i915_gem_object_get_page(log_obj, pg));
>>> +
>>> + for (i = 0; i < PAGE_SIZE / sizeof(u32); i += 4)
>>> + seq_printf(m, "0x%08x 0x%08x 0x%08x 0x%08x\n",
>>> + *(log + i), *(log + i + 1),
>>> + *(log + i + 2), *(log + i + 3));
>>> +
>>> + kunmap_atomic(log);
>>> + }
>>
>> This doesn't look performance critical, but you could also use
>> sg_miter_ family of functions/macros to iterate and kmap sg list
>> pages. I did not bother figuring out what kind of smarts
>> i915_gem_object_get_page does, but it is not likely it can beat
>> sg_miter_ for efficiency.
>
> It does. I have patches to replace more uses of sg_page_iter because it
> is the slow point in many functions.
Oh wow, so a "3rd party" random access iterator, used in sequential mode
over a naturally sequential data structure, beats the native sequential
iterator for performance? Amazing. :)
Regards,
Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-06-16 12:29 UTC|newest]
Thread overview: 90+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-15 18:36 [PATCH 00/15] Batch submission via GuC Dave Gordon
2015-06-15 18:36 ` [PATCH 01/15] drm/i915: Add i915_gem_object_write() to i915_gem.c Dave Gordon
2015-06-15 20:09 ` Chris Wilson
2015-06-17 7:23 ` Dave Gordon
2015-06-17 12:02 ` Daniel Vetter
2015-06-18 11:49 ` Dave Gordon
2015-06-18 12:10 ` Chris Wilson
2015-06-18 18:07 ` Dave Gordon
2015-06-19 8:44 ` Chris Wilson
2015-06-22 11:59 ` Dave Gordon
2015-06-22 12:37 ` Chris Wilson
2015-06-23 16:54 ` Dave Gordon
2015-06-18 14:31 ` Daniel Vetter
2015-06-18 18:28 ` Dave Gordon
2015-06-24 9:32 ` Daniel Vetter
2015-06-25 12:28 ` Dave Gordon
2015-06-24 9:40 ` Chris Wilson
2015-06-15 18:36 ` [PATCH 02/15] drm/i915: Embedded microcontroller (uC) firmware loading support Dave Gordon
2015-06-17 12:05 ` Daniel Vetter
2015-06-18 12:11 ` Dave Gordon
2015-06-18 14:49 ` Daniel Vetter
2015-06-18 15:27 ` Chris Wilson
2015-06-18 15:35 ` Daniel Vetter
2015-06-18 15:49 ` Chris Wilson
2015-06-19 8:43 ` Dave Gordon
2015-06-24 10:29 ` Daniel Vetter
2015-07-06 12:44 ` Dave Gordon
2015-07-06 13:24 ` Daniel Vetter
2015-06-15 18:36 ` [PATCH 03/15] drm/i915: Add GuC-related module parameters Dave Gordon
2015-06-15 18:36 ` [PATCH 04/15] drm/i915: Add GuC-related header files Dave Gordon
2015-06-15 20:20 ` Chris Wilson
2015-06-17 15:01 ` Dave Gordon
2015-06-23 18:10 ` Dave Gordon
2015-06-24 7:41 ` Dave Gordon
2015-06-24 9:37 ` Daniel Vetter
2015-06-15 18:36 ` [PATCH 05/15] drm/i915: GuC-specific firmware loader Dave Gordon
2015-06-15 20:30 ` Chris Wilson
2015-06-18 17:53 ` Yu Dai
2015-06-18 20:12 ` Chris Wilson
2015-06-19 14:34 ` Dave Gordon
2015-06-18 18:54 ` Dave Gordon
2015-06-15 18:36 ` [PATCH 06/15] drm/i915: Debugfs interface to read GuC load status Dave Gordon
2015-06-16 9:40 ` Chris Wilson
2015-06-19 7:49 ` Dave Gordon
2015-06-15 18:36 ` [PATCH 07/15] drm/i915: Defer default hardware context initialisation until first open Dave Gordon
2015-06-16 9:35 ` Chris Wilson
2015-06-19 9:42 ` Dave Gordon
2015-06-17 12:18 ` Daniel Vetter
2015-06-19 9:19 ` Dave Gordon
2015-06-24 10:15 ` Daniel Vetter
2015-06-15 18:36 ` [PATCH 08/15] drm/i915: Move execlists defines from .c to .h Dave Gordon
2015-06-16 9:37 ` Chris Wilson
2015-06-17 7:31 ` Dave Gordon
2015-06-17 7:54 ` Chris Wilson
2015-06-17 7:59 ` Chris Wilson
2015-06-22 13:05 ` Dave Gordon
2015-06-15 18:36 ` [PATCH 09/15] drm/i915: GuC submission setup, phase 1 Dave Gordon
2015-06-15 21:32 ` Chris Wilson
2015-06-19 17:02 ` Dave Gordon
2015-06-19 17:22 ` Dave Gordon
2015-06-16 11:44 ` Chris Wilson
2015-06-15 18:36 ` [PATCH 10/15] drm/i915: Enable GuC firmware log Dave Gordon
2015-06-15 21:40 ` Chris Wilson
2015-06-16 9:26 ` Tvrtko Ursulin
2015-06-16 11:40 ` Chris Wilson
2015-06-16 12:29 ` Tvrtko Ursulin [this message]
2015-06-15 18:36 ` [PATCH 11/15] drm/i915: Implementation of GuC client Dave Gordon
2015-06-15 21:55 ` Chris Wilson
2015-06-19 17:55 ` Dave Gordon
2015-06-15 18:36 ` [PATCH 12/15] drm/i915: Interrupt routing for GuC submission Dave Gordon
2015-06-16 9:24 ` Chris Wilson
2015-06-17 8:20 ` Dave Gordon
2015-06-17 12:22 ` Daniel Vetter
2015-06-17 12:41 ` Daniel Vetter
2015-06-23 11:33 ` Dave Gordon
2015-06-23 23:48 ` Yu Dai
2015-06-24 10:02 ` Daniel Vetter
2015-06-15 18:36 ` [PATCH 13/15] drm/i915: Integrate GuC-based command submission Dave Gordon
2015-06-16 9:22 ` Chris Wilson
2015-06-19 18:18 ` Dave Gordon
2015-06-15 18:36 ` [PATCH 14/15] drm/i915: Debugfs interface for GuC submission statistics Dave Gordon
2015-06-16 9:28 ` Chris Wilson
2015-06-24 8:27 ` Dave Gordon
2015-06-15 18:36 ` [PATCH 15/15] Documentation/drm: kerneldoc for GuC Dave Gordon
2015-06-15 18:36 ` [PATCH 16/15] drm/i915: Enable GuC submission, where supported Dave Gordon
2015-06-17 12:43 ` [PATCH 00/15] Batch submission via GuC Daniel Vetter
2015-06-25 7:23 ` Dave Gordon
2015-06-25 8:05 ` Chris Wilson
2015-06-24 12:16 ` Daniel Vetter
2015-06-24 12:57 ` Chris Wilson
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=5580169B.3010604@linux.intel.com \
--to=tvrtko.ursulin@linux.intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=david.s.gordon@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/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