[Intel-gfx] how to use i915 debugfs interface

Jani Nikula jani.nikula at linux.intel.com
Thu Dec 10 10:04:13 PST 2015

On Thu, 10 Dec 2015, remu kelly <remukelly at gmail.com> wrote:
> Hi intel team,
> I am working on a intel device with Linux kernel. I am able to see the i915
> debugfs interface in path :-
> "/sys/kernel/debug/dri/0"
> but there are so many interface commands to use as listed below:
> !!!!!!!!!!!!!!!!!!!!!!!!!
> bufs          hs_adjust             i915_drpc_info
> i915_gem_drop_caches  i915_gem_inactive   i915_gen6_forcewake_count
> i915_opregion         i915_rpm_api        name
> cb_adjust     i915_cache_sharing    i915_edp_psr_status
> i915_gem_fence_regs   i915_gem_interrupt  i915_gfxec
> i915_pc8_status       i915_rps_init       vm
> clients       i915_capabilities     i915_emon_status
> i915_gem_framebuffer  i915_gem_objects    i915_inttoext_table
> i915_ppgtt_info       i915_rstdby_delays  vma
> csc_adjust    i915_context_status   i915_energy_uJ
> i915_gem_gtt          i915_gem_pageflip   i915_iosf_api
> i915_rc6_api          i915_sr_status
> csc_enable    i915_cur_delayinfo    i915_error_state
> i915_gem_hws          i915_gem_pinned     i915_ips_status
> i915_rc6_status       i915_swizzle_info
> gamma_adjust  i915_delayfreq_table  i915_fbc_status
> i915_gem_hws_blt      i915_gem_request    i915_llc
> i915_ring_freq_table  i915_timestamp
> gamma_enable  i915_dpio             i915_forcewake_user
> i915_gem_hws_bsd      i915_gem_seqno      i915_mmio_api
> i915_ring_hangcheck   i915_turbo_api
> gem_names     i915_dpst_api         i915_gem_active
> i915_gem_hws_vebox    i915_gem_stolen     i915_next_seqno
> i915_ring_stop        i915_wedged
> !!!!!!!!!!!!!!!!!!!!!!!!
> But I don't see any README file on how to use each command, I mean what
> should be command format from shell command prompt, so that we can do the
> needful activity.

They are not commands. They are almost exclusive plain text you can just
'cat'; do that and you'll see what they're about. Some files you can
write to make changes, check the file permissions on what are
writable. (But don't do that unless you figure out first what you're

I think the only binary file is i915_opregion. You can use the
intel_opregion_decode and intel_bios_reader tools from the Intel GPU
Tools [1] to decode those.

> I am new to Linux itself, so it would be helpful if I can get some info on
> how to use the below interfaces in particular:-
> i915_mmio_api
> i915_dpst_api
> cb_adjust

These files are not part of the upstream i915 driver. You're running
something else; can't help you with that. Try whoever gave you the

> And I have one suggestion, please use "DRM_ERROR" in all these interfaces,
> as they show up in "dmesg", the copy to ubuf is not showing up in dmesg
> Please please help me.

As the name suggests, these are for debugging, not something we would
encourage people to use. We may also change them as we like. The
definitive source for what they do is in
drivers/gpu/drm/i915/i915_debugfs.c. If you don't know where you can
find that, you probably shouldn't do anything with the files, unless
e.g. we ask you to attach them in a bug report or something.


[1] http://cgit.freedesktop.org/xorg/app/intel-gpu-tools/

Jani Nikula, Intel Open Source Technology Center

More information about the Intel-gfx mailing list