95 Commits

Author SHA1 Message Date
Daniel Vetter
1431938c5c tests: add big batchbuffer test
... and use it in the hangman to stress the error_state capture a bit more.

Uncovered a bug in the obj->pages ->obj->sg_list rework.
2012-10-09 19:29:02 +02:00
Daniel Vetter
a7787baccc tests/gem_cs_prefetch: clarify what it tests
I've forgotten ;-)
2012-10-09 15:51:13 +02:00
Daniel Vetter
2d431fd6b6 tests: add drm_threaded_access_tiled
This catches parallel access to bo->virtual causing sigbus

Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
[danvet: applied some bikeshed
- changed prefix from drm_ to gem_, it's a kernel gem test
- added autohell magic to link with pthreads
- .gitignore entry
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-10-03 13:44:30 +02:00
Chris Wilson
3b9a76d2fa tests: Add gem_cpu_reloc
Attempt to stress test performing relocations whilst the batch is in the
CPU domain.

A freshly allocated buffer starts in the CPU domain, and the pwrite
should also be performed whilst in the CPU domain and so we should
execute the relocations within the CPU domain. If for any reason one of
those steps should land it in the GTT domain, we take the secondary
precaution of filling the mappable portion of the GATT.

In order to detect whether a relocation fails, we first fill a target
buffer with a sequence of invalid commands that would cause the GPU to
immediate hang, and then attempt to overwrite them with a legal, if
short, batchbuffer using a BLT. Then we come to execute the bo, if the
relocation fail and we either copy across all zeros or garbage, then the
GPU will hang.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-10-02 17:35:01 +01:00
Ben Widawsky
0cedccc844 sysfs rps test added
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2012-09-14 12:39:20 -07:00
Chris Wilson
ac23daaa51 tests/gem_cacheing: Exercise snoop coherency
This is based on tests/gem_partial_pwrite_pread which aims to detect
incoherency between CPU reads and writes to a bo whilst using it as a
source and target for GPU writes.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-08-27 09:42:34 +01:00
Alan Coopersmith
1b5fd314fd Add --disable-nouveau option for platforms without nouveau support
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-08-24 23:20:32 +02:00
Daniel Vetter
e40146878e Revert "tests: disable nouveau if unavailable"
This reverts commit dd8325323bfcca1f742e864ca7d87101a0d59936.

I like the patch from Alan Coopersmith with an explicit disable
option better.
2012-08-24 23:18:48 +02:00
Maarten Lankhorst
dd8325323b tests: disable nouveau if unavailable 2012-08-24 22:55:20 +02:00
Daniel Vetter
082826de6c tests: add gem_gtt_cpu_tlb
This catches tlb invalidation issues on my snb mobile gt2+
2012-08-15 10:26:48 +02:00
Maarten Lankhorst
fc54f2eaa8 satisfy danvet's OC
and add skip codes, but mostly satisfy danvet's OCD
2012-08-14 18:25:50 +02:00
Maarten Lankhorst
4520025b73 Add intel <-> nouveau prime tests 2012-08-13 15:57:57 +02:00
Daniel Vetter
6bc22e3dfd tests: add basic re-importing prime test
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-07-23 09:52:10 +02:00
Daniel Vetter
fb748aad4c tests: s/drm_reg_read/gem_reg_read
gem_ is the prefix for low-level kernel tests, drm_ tests
libdrm_intel specific stuff.
2012-07-23 09:52:10 +02:00
Ben Widawsky
4fe7869539 reg_read: basic register read ioctl test
This will need to get modified when the ioctl expands, and so is only
here for reference/to make Daniel happy.

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2012-07-18 11:30:12 -07:00
Ben Widawsky
afcffe783a context_basic: the most stressful context test to date.
this context test requiring libdrm updates

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2012-06-29 11:25:03 -07:00
Ben Widawsky
f7e356d9cd context tests not requiring libdrm
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2012-06-18 12:06:45 -07:00
Daniel Vetter
55fdd7f1bb cleanups after l3_parity merge
- call it sysfs_l3_parity for more consistency
- add .gitignore for intel_l3_parity
2012-05-31 15:20:12 +02:00
Ben Widawsky
dac1a2ceda tests/dpf: simple dpf test
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2012-05-31 15:20:12 +02:00
Ben Widawsky
9cfcb75b79 tests/wait render timeout test
Assures that signals interrupting the wait works properly. Because of
the scheduling around signals, interrupted waits will *seem* faster as
the GPU continues to work while all the CPU scheduling stuff happens.

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2012-05-25 13:08:28 +02:00
root
a628d56470 tests: add module reload testcase
We've broken this way too often in the past.
2012-05-25 11:02:09 +02:00
Jesse Barnes
362599ac10 tests: add simple flip test
Add a simple flip test to test flipping on a single output with the
preferred mode.

TODO: test each crtc for 3s and print pass/fail results
2012-05-07 12:36:28 -07:00
Daniel Vetter
bb40c7e8df test: fix up hangman script and enable by default
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-04-25 13:21:38 +02:00
Daniel Vetter
cf72da57dc tests: add gem_unfence_active_buffers
Unfortunately this requires slab poisoning to catch anything :(

Also add a new helper to drmtest to get the available fence count.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-04-22 12:35:23 +02:00
Daniel Vetter
16bc619939 tests: add gem_set_tiling_vs_pwrite
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-04-17 22:02:33 +02:00
Daniel Vetter
ff6abb313d tests: add gem_set_tiling_vs_gtt
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-04-17 17:25:24 +02:00
Daniel Vetter
b38188ad97 tests: rename gem_tiled_after_untiled_blt into gem_set_tiling_vs_blt
... it checks much more now.

Also update the comments a bit in the testcase.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-04-15 23:59:12 +02:00
Daniel Vetter
8f6ebd4ac0 tests: add gem_gtt_concurrent_blit
Same test as Chris Wilson's gem_cpu_concurrent_blit, but for
gtt mmaps.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-04-11 15:28:26 +02:00
Ben Widawsky
f841f4028c tests: rc6 residency test
This is meant to test the sysfs entry for showing rc6 residency in
milliseconds. Remember, sysfs is a permanent interface.

v2: use new get_card interface to try "all" devices
check rc6p and rc6pp in addition to rc6

v3: rename rc6_residency.c to sysfs_rc6_residency.c
print better error messages
skip test if rc6 isn't enabled

v4: update to new sysfs names

Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com>
2012-04-10 21:11:13 -07:00
Chris Wilson
da026d8bfe test: Exercise concurrent GPU read/write with CPU domain access
Designed to exercise this patch to i915.ko:

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index fbf1118..57ae1f2 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3181,9 +3181,11 @@ i915_gem_object_set_to_cpu_domain(struct drm_i915_gem_obj
        if (ret)
                return ret;

-       ret = i915_gem_object_wait_rendering(obj);
-       if (ret)
-               return ret;
+       if (write || obj->pending_gpu_write) {
+               ret = i915_gem_object_wait_rendering(obj);
+               if (ret)
+                       return ret;
+       }

        i915_gem_object_flush_gtt_write_domain(obj);

By exercising the conditions whereby should either of the checks be missed
an error is detected.
2012-04-10 19:35:29 +01:00
Ben Widawsky
af275bd521 tests: add wedging tests
Used to check that i915_error_state works. Unfortunately this
kills the gpu because wedging is permanent.

Base on a patch by Ben Widawsky.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-04-04 11:13:06 +02:00
Daniel Vetter
c34e481199 tests: add gem_tiled_after_untiled_blt
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-03-23 19:31:01 +01:00
Daniel Vetter
16c4f52782 tests: add gem_mmap_offset_exhaustion
This also adds a gem_madvise helper to lib/drmtest.c

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-03-20 14:27:05 +01:00
Daniel Vetter
f1d32d541d tests: add tiled partial pwrite/pread test
And indeed, this blows up.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-02-29 16:12:24 +01:00
Daniel Vetter
7492f97cde tests: add gem_cs_prefetch
Tested-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-01-24 23:03:12 +01:00
Daniel Vetter
7f7cafe729 testdisplay: extract hotplug code
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-01-24 10:50:10 +01:00
Daniel Vetter
98129fa2ff tests: add gem_tiled_swapping
Also add a drmtest_exchange_int helper, might come handy at other
places.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-01-22 22:28:46 +01:00
Daniel Vetter
08ccec1ec7 tests: make testdisplay non-optional
Not testing modesetting should not be an option.

Also this hopefully prevents testdisplay build-breakage from lingering
on for days like it has in the past.

And we want to eventually test the gem/kms cross-section, i.e.
pageflips.

Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-01-19 13:07:25 +01:00
Daniel Vetter
f07e4d1885 lib: extract rendercopy functions from gem_stress
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-01-18 21:23:56 +01:00
Daniel Vetter
eb64591613 tests: add ZZ_check_dmesg
This way the testsuit automatically fails if we hit a DRM_ERROR
or a WARN/BUG somewhere.

... i.e. this is the Jesse Barnes catcher ...

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-01-15 16:05:43 +01:00
Daniel Vetter
7a54bfa772 tests: add drm_vma_limiter_cached to check libdrm cache mmap pruning
Suggested by Chris Wilson.

Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-01-11 16:56:50 +01:00
Daniel Vetter
36d25cc744 tests: add drm_vma_limiter variants that only check gtt/cpu mmaps
Suggested by Chris Wilson.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-01-11 14:59:47 +01:00
root
553021d974 tests: add drm_vma_limiter
v2: Also check whether a 2nd mmap on the same bo still works.
Suggested by Chris Wilson.

Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-01-11 14:47:09 +01:00
Alan Coopersmith
504c4fa94f Fix pthread compiler flags to work on Solaris and with Studio compiler
AC_USE_SYSTEM_EXTENSIONS is used to let autoconf take care of setting
the right system defintions for POSIX threads & similar extensions to
the base POSIX API.   Since it will also #define _GNU_SOURCE 1, remove
the extra setting to avoid compiler warnings about redefined macros.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-01-08 21:49:03 +01:00
Gaetan Nadon
665b86664a config: use project wide xorg warnings variable
Use CWARNFLAGS as in all of xorg. There seems to be no reason why this
module should be different. The warnings were updated recently
for those who install the latest util-macros.

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-01-04 10:47:11 +01:00
Daniel Vetter
5a851b1392 tests: add gem_partial_pwrite_pread
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-12-04 21:45:12 +01:00
Daniel Vetter
ad6be1f0c9 tests: add gem_reloc_vs_gpu
Tests whether the kernel properly waits for the gpu before
applying a reloc.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-12-04 12:08:59 +01:00
Daniel Vetter
f5854c8902 tests: add gem_exec_faulting_reloc
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-12-02 20:36:06 +01:00
Daniel Vetter
ab3f4bdafe tests: add gem_exec_bad_domains
To check whether the kernel properly rejects non-gpu domains in
relocs.

Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-12-02 18:41:34 +01:00
Daniel Vetter
783f16e328 tests: add gem_tiled_pread_pwrite
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-12-02 10:55:56 +01:00