1609 Commits

Author SHA1 Message Date
Daniel Vetter
ba0d2acf0e lib/drmtest: skip/fail handling
Exitcode handling in igt testcases has too ugly facets in combination
with subtests:

- When individual subtest needed to be skipped for different reasons
  we need to painstakingly thread this information through the test to
  make sure that we still succeed if just one testcase worked (for
  running it with the simple automake test runner in igt). But it also
  needs to correctly report the skip exit value if only this one
  skipped testcase has been run (e.g. when run with piglit or in QA's
  test infrastructure).

- We'd prefer to easily skip (and also fail) subtests without
  hampering other subtests. Again threading the return value of each
  subtest through the code is cumbersome.

To simplify test case writing use longjmps to be able to get out of
subcases easily. But since longjmps are funny things thug it all away
into the newly added drmtest_subtest_block macro.

Note that if drmtest_skip is called outside of a subtest, but in a
testcase with subtests all subsequent subtests will be automatically
skipped.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-12 11:10:26 +02:00
Daniel Vetter
9f6365e4ea lib/drmtest: Add drmtest_subtest_block macro
Doesn't do more than an if (drmtest_run_test(name)) right now, but
as soon as we get a bit of infrastructure to handle test failures and
skipping, this will get more interesting.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-12 11:10:26 +02:00
Daniel Vetter
40ea6f4ea8 tests: s/cacheing/caching
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-12 11:10:26 +02:00
Chris Wilson
7b254f1939 gem_pwrite: Print the cache name not the number
Bugzilla: https://bugzilla.freedesktop.org/show_bug.cgi?id=68003
2013-08-12 08:39:26 +01:00
Chris Wilson
467796acc8 Expand gem_set_cacheing testing to handle the proposed DISPLAY domain 2013-08-10 15:49:33 +01:00
Chris Wilson
dbbf2e9b24 intel_error_decode: First try /sys/drm/card0/error for the error-state
As the sysfs is almost always mounted and readable, we have a higher
success rate checking for our error state there than in debugfs.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-08-07 23:43:25 +01:00
Daniel Vetter
a285f03f56 tests/prime_self_import: fix comment 2013-08-07 19:56:47 +02:00
Daniel Vetter
00280fa82a tests/prime_self_import: Fixup previuos test
... not a great display of my prowess here.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-07 18:36:31 +02:00
Daniel Vetter
8e11ab4192 tests/prime_self_import: Add a flink/dma-buf self-import test
This checks that we really always fill the dma-buf export cache. Which
sometimes we don't.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-07 18:13:48 +02:00
Daniel Vetter
e7c4fde8c1 tests: update .gitignore
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-07 12:01:35 +02:00
Daniel Vetter
57622965e5 tests/gem_pwrite_pread: subtest annotation
This testcase mixes correctnes tests with performance tests, so it's
good to track the different correctness test separate for QA.

Together with pread_after_blt the pwrite->blt tests here exercise the
full cache coherency lifecycle of both snooped and uncached objects.

/me is happy

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-07 11:59:05 +02:00
Daniel Vetter
3dba47e896 tests: add gem_prw_concurrent_blt
New testcase to check that pwrite/pread correctly synchronize with
oustanding rendering. Just to catch regressions when we change
something.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-06 22:28:41 +02:00
Daniel Vetter
4901b5ff0e tests/prime_self_import: Add racing handle2fd testcase
Similar to how we test flink races. Note that on unfixed kernels this
oopses, and with my current set of patches it still leaks like mad.

v2: Only close the prime fd if we've successfully created it.

v3: Add a reimport test to check whether we don't race when reaping
the obj->dma_buf link.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-06 21:59:55 +02:00
Daniel Vetter
9ff5161354 tests/gem_flink_race: Kill duplicate drm_open_any
Leak test that leaks ...

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-08-06 21:59:55 +02:00
Chris Wilson
d9bc787673 gem_pwrite_pread: Use mmap to bypass pwrite/pread for comparison
Just to help sanity test alternate paths.
2013-08-06 18:03:18 +01:00
Chris Wilson
e4a7c2fe6d gem_pwrite_pread: Measure how long it takes to upload/copy/download
Further trying to determine the effects of setting snooping.
2013-08-06 16:58:59 +01:00
Chris Wilson
ab6ac67243 lib: Reset sig_stat after stopping the rude interrupter 2013-08-06 16:58:59 +01:00
Chris Wilson
5d635f95f2 gem_pread: Symmetric measurement to gem_pwrite 2013-08-06 16:58:59 +01:00
Chris Wilson
aad68d1a86 gem_pwrite: Time pwrites to both uncached/snooped memory 2013-08-06 16:58:59 +01:00
Chris Wilson
a661c098b0 gem_partial_pwrite_pread: Exercise different cacheing of the staging bo 2013-08-06 16:58:59 +01:00
Chris Wilson
24eade08ab gem_pread_after_blit: Exercise reading back through different cache levels 2013-08-06 16:58:59 +01:00
Imre Deak
3052fe2c91 kms_render: fix gpu-blit for non-32bit bpps
intel_copy_bo assumes a 32bpp bo, whereas we passed it bos with
arbitrary bpp values. This resulted in thrashing GPU memory following the
destination bo.

Fix this by using a blit helper that can handle other bpps too.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2013-07-29 18:40:00 +03:00
Imre Deak
24de8bac80 lib: export drm_format_to_bpp
Needed by the next patch.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2013-07-29 18:40:00 +03:00
Imre Deak
c1ee0bb532 intel_batchbuffer: add support for non-32bit blt copies
Needed by an upcoming patch fixing kms_render's blits for fbs that have
other than 32bpp formats.

Based on the corresponding SNA function.

v2:
- fix random ordering of src, dst parameters (Chris)
- pass pitch in bytes rather than pixels (Chris)

Signed-off-by: Imre Deak <imre.deak@intel.com>
2013-07-29 18:40:00 +03:00
Ben Widawsky
a85548910c lib/intel_mmio: Fix the fixed fix (register access)
When I moved code around here:
commit 57bc7631e161a7bdcf7f68e1a46049dcb49c2256
Author: Ben Widawsky <ben@bwidawsk.net>
Date:   Thu May 23 11:09:55 2013 -0700

    lib/intel_mmio: Fix the fix

I accidently dropped the intel_gen() for the PCI id.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=67289
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2013-07-27 15:30:41 -07:00
Daniel Vetter
e3e4db93db tests/sysfs_edid_timing: use real bash
The lib/drm_lib.sh load path trick doesn't work otherwise. Tsk.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-25 21:51:53 +02:00
Daniel Vetter
db225aa38d tests/gem_flink_race: correct thread count
They all race against each another, no worker-slave relationship
like in the other subtest.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-24 17:04:35 +02:00
Daniel Vetter
bc62a64b8a tests/gem_flink_race: fix up scanf format
Oops, failed to git add.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-24 17:01:11 +02:00
Daniel Vetter
24bbca9237 tests/gem_flink_race: actually make it somewhat useful
- Enable subtest support.

- Add a check for the same flink name in the racing threads, which is
  an issue one of my recent patches actually fixes.

- Add the test I've actually wanted to write which races an flink
  against gem close (with no open in between). That one does indeed
  leak.

- Readd the leak check, but note that this needs a fixed kernel.
  Otherwise the leak counter will be utter garbage.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-24 12:52:01 +02:00
Daniel Vetter
dfe942edec Revert "tests/gem_flink_race: count leaked objects"
This reverts commit bd927662fcfb1443c5982fb04cc694f78e1c8d53.

It's bogus.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-24 09:31:40 +02:00
Daniel Vetter
aaeaca7720 tests/gem_flink_race: check for expected flink failure code
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-24 08:01:35 +02:00
Daniel Vetter
bd927662fc tests/gem_flink_race: count leaked objects
And fail the test if the leak count is bigger than 0.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-24 07:37:45 +02:00
Daniel Vetter
9736fc09e2 tests/gem_flink_race: kill debug printf
Oops.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-24 06:55:10 +02:00
Daniel Vetter
7b5440a09a tests: add gem_flink_race
This exercises a race in the flink name descruction of the current drm
gem core. When racing a gem close with a gem open the open can sneak
in and cause the kernel to leak the flink name and its reference.

This results in leaked gem objects that won't get reaped even at drm
file close time. On my 2 core/4 threads snb machine this leaks on the
order of 1k objects per second.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-23 23:15:12 +02:00
Daniel Vetter
8e46c382e3 lib/drmtest: add gem_flink and gem_open
Requires us to rename a few things in the gem_flink test to avoid
variable shadowing.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-23 23:15:12 +02:00
Daniel Vetter
5fcb528cb3 tests: sort tests in Makefile.am and .gitignore
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-23 23:15:12 +02:00
Daniel Vetter
10834f8610 tests/gem_suspend: exercise fence restore code
This exercise the bug fixed in

commit 94a335dba34ff47cad3d6d0c29b452d43a1be3c8
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Wed Jul 17 14:51:28 2013 +0200

    drm/i915: correctly restore fences with objects attached

For fun I've also added a subtest for the inverse transition.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-23 20:46:57 +02:00
Daniel Vetter
5bc0324e86 lib/drmtest: document interface groups with one-liners
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-22 09:25:41 +02:00
Ben Widawsky
89d96a12d6 tests: Basic tools tester
Requested-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2013-07-21 22:04:20 -07:00
Chris Wilson
f801b92882 test/gem_pread_after_blit: Make the test a little more stressful
Extend the simply functionality by repeating it under the rude
interrupter and chain together a couple of steps in new test cases.

As a compromise for adding more tests, incorporate the piglit subtest
framework.
2013-07-20 10:25:12 +01:00
Damien Lespiau
7d9dbd1fed tests: Source drm_lib.sh instead of having its own INTEL_SIMULATION test
One code path to maintain is always better.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-07-19 18:40:25 +01:00
Damien Lespiau
a7c56938c8 tests: Allow a shell test to declare it doesn't need to be DRM master
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-07-19 18:40:22 +01:00
Damien Lespiau
aefc5c63e4 lib: Allow users of env_set() to specify a default value
So when the environment value isn't set, one can specify the default
value to return.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-07-19 18:38:47 +01:00
Damien Lespiau
94444aea6e build: Pimp up the configure summary
This helps people compiling i-g-t figuring out what can be optional.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-07-19 18:38:38 +01:00
Damien Lespiau
2797596432 build: Fix automake 1.13 warnings
warning: deprecated feature: target 'sr' overrides 'sr$(EXEEXT)'

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-07-19 18:38:34 +01:00
Damien Lespiau
bbce319b29 build: Fix unbalanced quoting in the python dumper AC_ARG_ENABLE()
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-07-19 18:38:31 +01:00
Damien Lespiau
54ec3cbdd5 build: Fix a small typo in configure.ac
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-07-19 18:38:27 +01:00
Daniel Vetter
289024b328 lib/drmtest: fix const mismatch warning
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-19 18:24:59 +02:00
Xiong Zhang
fc5c693014 tests: add reloc, pread, pwrite slow path subtest
the reloc, pread, pwrite slow path will be prevented by prefault,
these subtests will disable prefault first, then do reloc, pread,
pwrite, finally enable prefault.

Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.com>
2013-07-19 18:12:44 +02:00
Xiong Zhang
7ea2983b11 lib/drmtest: add drmtest_disable/enable_prefault() function
V2: add exit handler to enable prefault (Daniel)

Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.com>
2013-07-19 18:12:36 +02:00