[Intel-gfx] [PATCH] drm/i915: Add aub debug support for kernel

Liu Aleaxander aleaxander at gmail.com
Tue Nov 2 15:55:04 CET 2010


Hi Chris,

On Tue, Nov 2, 2010 at 6:02 PM, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> On Tue,  2 Nov 2010 17:11:36 +0800, Yuanhan Liu <yuanhan.liu at intel.com> wrote:
>> The AUB file is a file format used by Intel's internal simulation
>> and other validation tools. The content of an aub file is a subset
>> collection of all the data needed by GPU.
>>
>> Here now just collects the data that are going to be written into
>> register, since the others data like ring buffer, buffer objects
>> are dumped at user space by libdrm.
>>
>> The currentl implementation: hooks the I915_WRITEx macro. The basic
>> idea is write down all the reg offset and reg val before writing
>> them to register.
>
> This part looks possible to achieve just using tracepoints (and replace
> the current debug printk in the process). The advantage of that is we
> can then tap into a low overhead tracing mechanism with a *ringbuffer*!
> ;-) It will require a bit of userspace scripting to do the .aub format
> conversion.
>
> I presume the plan will be to include batchbuffer+auxiliary buffer
> contents as well in order to capture the complete temporal sequence for
> debugging+replay?

First of all, thanks for your comments.

Dumping batchbuffer and auxiliary buffer at kernel is good, but I'm not sure
is there any plan for this. Since the job is done well at user space by libdrm.
And it's a bit easier to control the aub debug feature at user space, which is
done by 'export INTEL_DEBUG=aub' then run some 3D apps, then an
i965.aub file generated. Of course, you can use libdrm trace media data, too.

While, we may need to dump some buffers, as some register's content refers
to a page address.  Anyway, that's why i915_aub_data is defined but not
i915_aub_reg.

>
> Being able to trace the register writes using ftrace is good... In fact we
> can remove our own printks and just use mmiotrace. So is it possible to
> post-process mmiotrace into .aub?

As I found mmiotrace can handle the operation(read or write), the
register address
and the value's size, yes, it is(I guess).  I will do more
investigation tomorrow.

-- 
regards
Yuanhan Liu



More information about the Intel-gfx mailing list