Skip to content
Michael Sartain edited this page Sep 5, 2017 · 14 revisions

Gpuvis is a Linux GPU profiler similar to GPUView on Windows. It is designed to work with trace-cmd captures and help track down Linux gpu and application performance issues.

If you are running Linux kernel v4.12+ and capture these amdgpu events:

"amdgpu:amdgpu_cs_ioctl"
"amdgpu:amdgpu_sched_run_job"
"*fence:*fence_signaled"

Gpuvis will show you "SW queue", "HW queue", and "HW execution" duration in the gfx timeline.

Capturing "sched:sched_switch" events allows gpuvis to graph task states:

In the above image, our mouse is hovering over the selected purple rectangle which is in the TASK_INTERRUPTIBLE state for 4.8ms. Green sections are TASK_RUNNING.

From linux/sched.h:
  TASK_RUNNING (0): On the run queue
  TASK_INTERRUPTABLE (1): Sleeping but can be woken up
  TASK_UNINTERRUPTABLE (2): Sleeping but can't be woken up by a signal
  TASK_STOPPED (4): Stopped process by job control signal or ptrace
  TASK_ZOMBIE (32): Finished but waiting for parent to call wait() to cleanup

Gpuvis will show vertical lines for vblank events if you capture "drm:drm_vblank_event", and calculate vblank queued duration if you also capture "drm:drm_vblank_event_queued" events.

Clone this wiki locally