Distinguish an inline ringbuffer [-- ringbuffer] dump, from batch
buffers [-- gtt_offset] and separate it in the decoded output.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This is a handy tool to just check state of one register, which might
not bother to be included in intel_reg_dumper tool. And also take in Ben's
original full range register dump with '-f' option.
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
When using intel_gpu_top in a small terminal, the most important
information (ring idle/busy units) scrolls off the top of the screen.
This patch limits the number of lines printed to the terminal height
so that the most idle units (at the bottom) are truncated instead.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Introduce a second decoder that simpler operates on a file so that it
can be run on dumped batchbuffers independent of the gpu.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
A simple variant on time crossed with intel_gpu_top to estimate the
amount of GPU activity during a program's execution time.
The resource usage (sys+user, i.e. CPU %) is for the child, but the
GPU measure is global. Hmm.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This is a test case that overcommits fence registers between threads, which
are copying from one fenced bo to another. In earlier versions of the driver
this would cause excessive spinning as the first inactive (i.e. not in use
by the GPU) would be used to service the next page. After all the fence
registers had been allocated, in effect only the very first fence would then
be used for all subsequent faults.
The error message was falsely claiming that a debugfs directory
didn't exist, when it was supposed to report that the ringbuffer
file did not exist within that directory.
Add four new tests for error the error handling cases:
- gem_bad_address - store to a bad address, should generate a protection or
page table error
- gem_bad_batch - try to execute a bad batch, should generate a protection,
invalid instruction or page table error
- gem_bad_blit - blit to an invalid location, should generated a protection
or page table error
- gem_hang - hang the GPU on an event that will never happen, test hang
detection & recovery code
The printf used to clear the screen didn't have a format string, this
adds one to avoid a compiler warning.
Signed-off-by: Eric Anholt <eric@anholt.net>
It can be a bit easier to digest the percentages with bar graphs than by
scanning continually changing numbers.
Signed-off-by: Eric Anholt <eric@anholt.net>
For a typical vsync locked application running at 60fps, sampling at just
under twice a frame doesn't seem to give very stable lists of relevent hardware
units because there are a number of units involved that may not be sampled one
second to the next.
This bumps the sample rate to 10,000 instead which is ~ 170 samples per
frame so we tend to hit all the units involved.
It also changes the report threshold to a sample count >= 1, so you don't
see as many units with a percentage of 0.
Signed-off-by: Eric Anholt <eric@anholt.net>