1564 Commits

Author SHA1 Message Date
Chris Wilson
5c81cda0ff overlay: Add graph for GPU power consumption
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-20 10:26:23 +01:00
Chris Wilson
baa5be07d6 overlay: Add rc6 residency
Not much point at the moment since we use forcewake to continuously
probe the GPU busyness. But that will eventually change to a more
power-efficient in-kernel.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-20 10:03:47 +01:00
Daniel Vetter
912a7d8556 tests/gem_concurrent_blit: Fix segmentation fault
Apparently the simple changes introduced in

commit 78865847f9fae7e590960f9836f2ec8b611a190e
Author:     Daniel Vetter <daniel.vetter@ffwll.ch>
AuthorDate: Mon Aug 19 07:23:49 2013 +0200
Commit:     Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Mon Aug 19 08:09:25 2013 +0200

    lib/drmtest: skip fixtures after an igt_skip

pushed the stack space requirement for run_modes over some magic limit
(I guess where the strack grow logic starts to fail, but I didn't
check). Fix this by moving the data into .bss.

Also add some asserts to check that fixtures aren't abused while at
it (i.e. the useful parts of my debug printf/assert craze).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68299
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-20 06:42:10 +02:00
Chris Wilson
00282ed458 overlay: Wrap the colour index around the rgba array
And stop assigning colours beyond the end of the array. Still needs a
better method for colour assignment, big list of good colours & ida?

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-19 23:29:08 +01:00
Chris Wilson
f71d7aeb77 overlay: Add missing include "debugfs.h"
Later versions of gcc are apparently stricter.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-19 22:26:01 +01:00
Chris Wilson
55b8c33ca5 overlay: Auatomatically mount debugfs
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-19 18:16:11 +01:00
Mengdong Lin
34198b801e quick_dump/bdw: use hex() to convert devid to hex string in error message
This patch is to avoid the error on device auto-detection failure
"TypeError: Can't convert 'int' object to str implicitly".

Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
2013-08-19 10:14:01 -07:00
Imre Deak
b70d4c9e68 tests: add kms_setmode
Iterate through all valid/invalid crtc/connector combinations. At the
moment only clone configurations are tested as the single output cases
are tested already by testdisplay. Also from combinations where all
connectors are on the same crtc (clone-single-crtc) only those are
tested that are invalid, as I haven't found any machine that supports
these (have to be GT2 with dvo and vga output).

For configurations with one crtc per connector the FBs are per-crtc atm.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2013-08-19 16:56:14 +03:00
Imre Deak
5cabaae4dd lib: add subtest extra command line option handling
At the moment any command line option handling done by tests will
interfere with the option handling of the subtest interface. To fix this
add a new version of the subtest_init function accepting optional short
and long command line options. Merge these together with the subtest
interface's own long options and handle both together in the same
getopt_long call.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2013-08-19 16:38:22 +03:00
Imre Deak
e55b89f1c3 lib: handle SIGSEGV similarly to other error signals
Signed-off-by: Imre Deak <imre.deak@intel.com>
2013-08-19 16:38:21 +03:00
Imre Deak
9cbbce148f lib: shorten DP/eDP connector names
Signed-off-by: Imre Deak <imre.deak@intel.com>
2013-08-19 16:38:21 +03:00
Imre Deak
9a9f13167a lib: export kmstest_get_connector_default_mode
Signed-off-by: Imre Deak <imre.deak@intel.com>
2013-08-19 16:38:21 +03:00
Daniel Vetter
8dbd1fb9d4 lib/drmtest: igt_skip when drm_get_card fails
Also add printf support to igt_skip to make sure there's always a
reason why we fail a testcase.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-19 11:09:25 +02:00
Daniel Vetter
9ad062d0b3 lib/drmtest: extract gem_create_context
libdrm requirements are now up to it.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-19 10:55:28 +02:00
Daniel Vetter
23eee39489 tests: roll out igt_require some more
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-19 10:47:53 +02:00
Daniel Vetter
5951ffb6a0 lib/drmtest: rip out drm_open_any_master
It's unused. Also most of our tests failed to ask for the right type
of drm fd anyway. So it's imo better to just let them fall over when
they don't get master but want it, like they already do today.

This also allows us to garbage-collect the master parameter to
drm_get_card and associated code.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-19 10:34:34 +02:00
Daniel Vetter
4ba1f2e104 lib/drmtest: Properly skip if no intel gfx supported
drm/* kernel test nirvana!

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-19 08:09:25 +02:00
Daniel Vetter
47a32a3aec lib/drmtest: make igt_fail work outside of subtests
With the abortable fixtures we can now correctly fail all subsequent
sutbests if we hit upon an igt_assert outside of a subtest.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-19 08:09:25 +02:00
Daniel Vetter
78865847f9 lib/drmtest: skip fixtures after an igt_skip
This way we can just enclose all igt_skip/igt_require calls into
fixtures even when we have subtests, and still output correct SKIP
message for all of them. Wohoo, magic!

The only thing which doesn't work yet is enumerating failed subtests,
but I think that should work out on top of this.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-19 08:09:25 +02:00
Chris Wilson
3df8300e23 overlay: Tweak label locations to include baseline offset.
Still approximately, too lazy to query the metrics.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-19 08:20:15 +01:00
Chris Wilson
34e4780c8e overlay: Add a X11 window backend
Useful for remote hosts.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-18 21:10:26 +01:00
Chris Wilson
1c1a279806 overlay: Tweak a couple of the fill colours to be slightly less horrid
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-18 19:21:02 +01:00
Chris Wilson
1391ae08eb overlay: Don't smooth gpu freq
This is supposed to be discrete jumps, so use straight lines to emphasis
this nature.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-18 19:21:02 +01:00
Daniel Vetter
90ef68859c test/gem_dummy_reloc_loop: fix igt_require conversion
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68170
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-18 19:58:28 +02:00
Chris Wilson
5d41b13824 overlay: Remove the double ':' from object comm names
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-18 18:55:12 +01:00
Chris Wilson
6a38200b87 overlay: Use a more compact 2x2 layout for the graphs
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-18 18:51:22 +01:00
Chris Wilson
74032f4b45 overlay: Rearrange GUI state
Planning a new layout...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-18 18:40:03 +01:00
Chris Wilson
7d950fa6f2 overlay: Print min/max GPU frequencies.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-18 18:27:47 +01:00
Chris Wilson
3f5129471f overlay: Convert gem objects to megabytes
Less confusing, I hope.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-18 18:24:43 +01:00
Chris Wilson
e1ed5606c6 overlay: Parse gem objects
Condense the information and begin graphing it. Remaining todo for
memory is to measure bind/evict flux, and perhaps clflush.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-18 18:17:05 +01:00
Chris Wilson
de2c97b27f overlay: Add GPU frequency
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-18 16:53:18 +01:00
Chris Wilson
6a64ee938b overlay: Include CPU usage in the overview chart
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-18 15:57:47 +01:00
Chris Wilson
98572f0446 overlay: Count flips per plane
Stop the misleading double-accounting of flips when we have multiple
displays active.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-18 11:22:52 +01:00
Chris Wilson
b79a28355d overlay: Improve the horizontal fit of the charts
Notably fix the fill boundary to not extend past the right hand side of
the chart.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-17 23:50:21 +01:00
Chris Wilson
f185f46114 overlay: Correct layout of ring/seqno in raw sample
For seqno completion, the events are too coarse i.e. one event may
signal the completion of a few seqno. We will need to sort the events to
properly compute the busy times.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-17 23:21:34 +01:00
Chris Wilson
67f533f836 overlay: Accumulate busy times
Still a little too course as we add multiple overlapping seqnos and
waits.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-17 22:33:35 +01:00
Chris Wilson
6233cac9c9 overlay: Couple wait begin/end events together to fix accounting
Since the events may be processed out of order (due to per-cpu
ringbuffers) we need to be careful to associated wait pairs in order to
compute the correct elapsed time.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-17 22:22:21 +01:00
Chris Wilson
e1d8d774f3 overlay: Perf output redirection must be done after mmap()
Effectively you choose to redirect the output of an event instead of
mmapping it directly - but the target must already be mmapped.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-17 22:07:49 +01:00
Chris Wilson
eed59eac47 overlay: Show per-process wait times
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-17 21:14:10 +01:00
Chris Wilson
cc9de398cf overlay: Graph per-process requests over time
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-17 20:32:58 +01:00
Chris Wilson
cbbd55af15 overlay: Track requests per-process
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-17 20:04:11 +01:00
Chris Wilson
be9937b65c overlay: Drop unused mmap/comm events
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-17 18:48:28 +01:00
Chris Wilson
8cdb5bc5e8 overlay: Constify perf ringbuffer
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-17 18:24:39 +01:00
Chris Wilson
3e430a8b01 overlay: Fix wraparound handling of perf ringbuffer
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-17 18:09:40 +01:00
Chris Wilson
cc45a9a3db overlay: Primitive integration with perf
We can now record when a pageflip occurs by listening for the flip
tracepoint. Merely proof of principle at this point.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-17 17:42:14 +01:00
Chris Wilson
06c0cc0bb4 overlay: Show GPU waits
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-17 12:35:50 +01:00
Chris Wilson
f9a50de3dc Introduce intel-gpu-overlay
A realtime display of GPU activity. Note, this is just at the point of
minimum usability...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-17 11:21:51 +01:00
Ben Widawsky
7df9caeea1 quick_dump: add is_haswell()
This was missed beforehand.

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2013-08-16 14:54:36 -07:00
Chris Wilson
0d320fdced gem_concurrent_blit: Purge the child bufmgr's cache
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68169
2013-08-16 12:23:17 +01:00
Chris Wilson
6332994c26 drmtest: Squelch the rude interrupter
Stop printing the debugging information of how many times we emitted a
signal.
2013-08-16 12:23:00 +01:00