2729 Commits

Author SHA1 Message Date
Daniel Vetter
2347e6d21e lib: Introduce igt_fail_on/_f
I've yet again totally screwed things up (this time automated with
cocci even, but not yet pushed luckily). So finally add a new version
for easier conversion and adjust the cocci script.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 18:14:13 +02:00
Daniel Vetter
46811c849a lib/igt.cocci: Also add rule to use igt_warn_on_f
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 18:12:42 +02:00
Daniel Vetter
9eb9345f99 lib/igt.cocci: Convert abort() to igt_fail
abort should only be used for internal library checks - using
abort() we get a "crash" result, using igt_fail we get "fail"
in piglit.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 18:12:42 +02:00
Daniel Vetter
bde52d1a08 lib/igt.cocci: Conversion to igt logging
Also update old hunks to match on igt logging instead of fprintf.

v2: Don't forget about perror.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 18:12:36 +02:00
Daniel Vetter
6b73a9a288 tests: Don't use stderr for informational messages
These should go to stdout instead. The next patch will clean this up
with cocci, so no change from fprintf(stdout, to printf( here.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 18:09:05 +02:00
Daniel Vetter
652e544150 tests/pm_psr_sink_crc: Fix longjmp fun
igt_fixture and igt_subtests use longjmp/setjmp internally, which
means local variables at the same stack frame are at risk. Best
practice is to move them out right in front of the igt_main block.

It would be awesome if someone could come up with a cocci patch to
auto-fix this, but unfortunately my attempts failed.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 18:09:05 +02:00
Daniel Vetter
ac0e606677 Revert "tests: Run igt.cocci over tests"
This reverts commit 6903ab04e5f9048e3932eb3225e94b6a228681ba.

The igt_assert conversion rule is broken and doesn't invert the check
as it should.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 18:09:05 +02:00
Chris Wilson
bfede4ed2b igt/gem_fence_upload: Exercise contention on the fault handler
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-06-13 15:47:41 +01:00
Daniel Vetter
6903ab04e5 tests: Run igt.cocci over tests
Cocci is awesome

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 11:17:23 +02:00
Daniel Vetter
66b31b6e19 lib: add igt.cocci
Small start but useful to collect refactorings/simplifications for
common igt patterns. Please add more if you stumble over some so that
we can occasionally run this to clean up the tests.

I haven't figured out yet how to do the assert_cmpint->assert_eq
transformation.

Run this with

spatch --sp-file lib/igt.cocci --in-place tests/*.c

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 11:17:22 +02:00
Daniel Vetter
3448b5ad4b lib/igt_core: Add igt_assert_eq
Suggested by Chris Wilson. Not yet rolled out since I'm trying to use
cocci for this.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 11:17:04 +02:00
Daniel Vetter
b4c1f2ea0f tests/prime_self_import: Use igt_assert_cmpint
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 10:23:01 +02:00
Daniel Vetter
ea0116cdcd tests/kms_psr_sink_crc: Skip properly
Aside: The test has way too many bool return values that are then
always checked with igt_assert. Imo cleaner to switch to a more
declarative approach and shovel the igt_assert/require into those
functions instead.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79962
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 10:18:24 +02:00
Chris Wilson
c1192c4db4 igt/gem_fence_upload: Throw some threads into the mix
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-06-12 17:02:00 +01:00
Chris Wilson
d242f2e2a3 igt/gem_mmap_gtt: Exercise concurrent pagefaulting
This should hit the BUG inside remap_pfn_range in

commit c5158fabeaf53ed2c614c3333aaa4b3cce80f500
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jun 10 12:14:41 2014 +0100

[   27.767634] kernel BUG at mm/memory.c:2315!
[   27.767655] invalid opcode: 0000 [#1] SMP
[   27.767679] Modules linked in: cpufreq_userspace cpufreq_powersave cpufreq_stats cpufreq_conservative binfmt_misc nfs lockd fscache sunrpc hid_generic usbhid hid x86_pkg_temp_thermal microcode i2c_i801 lpc_ich mfd_core battery acpi_cpufreq evdev processor ac loop ehci_pci xhci_hcd ehci_hcd sr_mod usbcore cdrom usb_common fan thermal
[   27.767872] CPU: 3 PID: 912 Comm: gem_mmap_gtt Not tainted 3.15.0-rc8+ #953
[   27.767903] Hardware name: Intel Corporation Shark Bay Client platform/Flathead Creek Crb, BIOS HSWLPTU1.86C.0109.R03.1301282055 01/28/2013
[   27.767956] task: ffff880448415010 ti: ffff88044d22c000 task.ti: ffff88044d22c000
[   27.767988] RIP: 0010:[<ffffffff81130734>]  [<ffffffff81130734>] remap_pfn_range+0x2a4/0x400
[   27.768033] RSP: 0000:ffff88044d22fc28  EFLAGS: 00010282
[   27.768057] RAX: 0000000000020002 RBX: 00000000000a3b57 RCX: ffff880448b73fe8
[   27.768088] RDX: 0000000000000002 RSI: ffff880000000000 RDI: ffffea000efe8158
[   27.768119] RBP: ffff88044d22fcd8 R08: 00007fc7b57fe000 R09: 00007fc7b57fe000
[   27.768150] R10: 00000000000001fd R11: 0000000000000a9a R12: ffffea000efe8128
[   27.768180] R13: 0000000000000001 R14: 00007fc7b57fd000 R15: 800000000000002f
[   27.768212] FS:  00007fc7977fc700(0000) GS:ffff88045e380000(0000) knlGS:0000000000000000
[   27.768246] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   27.768272] CR2: 00007fc7b67fd000 CR3: 000000044866c000 CR4: 00000000001407e0
[   27.768303] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   27.768333] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[   27.768363] Stack:
[   27.768374]  ffff880448bbb6f8 00000000ffffffff 00007fc7b57fdfff 00007fc7b57fdfff
[   27.768414]  00007fc7b57fe000 ffff88044866c7f8 ffff8804496b08f0 00007fc7b57fdfff
[   27.768454]  fffffff8038ee35a 0000000000001000 ffff88044c208180 00007fc7b57fe000
[   27.768494] Call Trace:
[   27.768511]  [<ffffffff81365277>] i915_gem_fault+0x337/0x340
[   27.768538]  [<ffffffff8112d3c4>] __do_fault+0x34/0x70
[   27.768565]  [<ffffffff8109088e>] ? wake_up_process+0x1e/0x40
[   27.768592]  [<ffffffff8113015c>] do_shared_fault.isra.96+0x2c/0x1f0
[   27.768623]  [<ffffffff81502405>] ? rwsem_down_read_failed+0xe5/0x130
[   27.768654]  [<ffffffff810a2519>] ? __rwsem_do_wake+0x129/0x160
[   27.768682]  [<ffffffff81131085>] handle_mm_fault+0x2b5/0xb80
[   27.768712]  [<ffffffff81270a64>] ? call_rwsem_down_read_failed+0x14/0x30
[   27.768745]  [<ffffffff81036c67>] __do_page_fault+0x167/0x4c0
[   27.768774]  [<ffffffff8109a540>] ? pick_next_task_fair+0x700/0x870
[   27.768804]  [<ffffffff814ff23b>] ? __schedule+0x27b/0x860
[   27.768831]  [<ffffffff81036fec>] do_page_fault+0xc/0x10
[   27.768857]  [<ffffffff815034a2>] page_fault+0x22/0x30
[   27.768881] Code: 4d 85 ed 49 0f 44 d7 80 cc 02 49 81 c6 00 10 00 00 48 83 c3 01 48 83 c1 08 48 09 d0 48 89 41 f8 4d 39 f0 74 32 48 83 39 00 74 c4 <0f> 0b 66 2e 0f 1f 84 00 00 00 00 00 48 39 37 75 63 48 8b 45 c8
[   27.769081] RIP  [<ffffffff81130734>] remap_pfn_range+0x2a4/0x400
[   27.769113]  RSP <ffff88044d22fc28>

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-06-12 15:29:53 +01:00
Thomas Wood
8a23da43d4 docs: remove unused annotation glossary include
API annotations are not used anywhere in the documentation, so the
annotation glossary is not built.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-06-12 10:12:13 +01:00
Thomas Wood
cd714f93e8 docs: always rebuild the sections file
Always rebuild the sections file since it currently doesn't contain any
custom modifications.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-06-12 10:12:13 +01:00
Thomas Wood
bbd014e163 docs: add private headers to IGNORE_HFILES
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-06-12 10:12:13 +01:00
Thomas Wood
52a3a2e205 lib: various documentation fixes
Fix some documentation comments and mark some struct members private.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-06-12 10:12:13 +01:00
Thomas Wood
25663d9fe3 gitignore: add missing files and keep lists sorted
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-06-12 10:12:13 +01:00
Thomas Wood
3dd7ad14d3 README: update the section on modifying and rebuilding documentation
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-06-12 10:12:13 +01:00
Thomas Wood
1e5c8780d0 lib: remove /** from comments that are not API documentation
These comments are not gtk-doc comments, so replacing /** with /*
prevents any gtk-doc warnings.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-06-12 10:12:13 +01:00
Thomas Wood
6d28f6a91a README: update piglit instructions
Piglit now has a top level "piglit" command and the location of the
tests can now be read from an environment variable.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-06-12 10:12:13 +01:00
Thomas Wood
c54ee9819a quick_dump: read the architecture files for items to add to EXTRA_DIST
Each architecture file contains a list of the text files it requires, so
use this to add to the list of files to distribute.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-06-12 10:12:13 +01:00
Daniel Vetter
e10c9a730d tests/gem_fence_upload: Fix test wrapper
- tests with subtests need to be in the _M target for correct
  enumeration.

- No need for igt_exit when using the igt_(simple_)main wrappers.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-12 09:12:06 +02:00
Daniel Vetter
618aca1fb9 lib/intel_os: Spelling fix
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-12 09:04:45 +02:00
Chris Wilson
c62ce339f2 tests: add gem_fence_upload
This test demonstrates the performance cliff clients face when they
unwittingly use too many fenced surfaces in a looped upload.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-06-12 08:00:39 +01:00
Rodrigo Vivi
27d37a1f10 tests/kms_psr_sink_crc: Create test to test PSR by checking panel CRC.
v2: Wait psr enable with timeout and more subtest added.
v3: Add wait for v_blank leeting test more reliable and preparing to
    add Baytrail per-pipe tests.
v4: Call busy_ioctl on mmap_gtt to match the real usage and remove the need
    of inactivate on set_domain, what was semantically wrong.
v5: Adding more test cases to cover mmap_gtt with and without followed by
    busy ioctl and also without busy and waiting 10 seconds between
    set_domain and actual write.
v6: rebase after kms_plane added and debugfs api changed.
    Plus adding more test cases.
v7: Some rework and sprite test added

Signed-off-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
2014-06-11 03:21:43 -07:00
Damien Lespiau
8c4dd1d898 list-workarounds/chv: Add Cherryview to the list of valid platorms
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-06-11 16:55:55 +01:00
Daniel Vetter
35554a1bca Revert "Add rc6_residency_counter subtest"
This reverts commit 9a70e29f8380c2fc6f9b43757c68e24bf2619061.

Patch needs polish and after a quick irc discussion Ben&I agreed that
the revert is in order.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-11 16:35:52 +02:00
Ville Syrjälä
4e9df4fe5f tests/kms_fbc_crc: Update blit code for BDW
Switch to XY_COLOR_BLT from COLOR_BLT and use the appropriate
macros to make the code work on BDW.

Also make the blit 8bpp instead if 16bpp. 8bpp is what it was
supposed to use all along.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76307
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-06-10 16:54:04 +03:00
Chris Wilson
210d20f413 API docs for intel_check_memory()
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-06-10 14:29:27 +01:00
Daniel Vetter
0617b0b3b8 NEWS: post-release bump 2014-06-10 08:18:37 +02:00
Rodrigo Vivi
32bb5d9f15 bump version to 1.7 and add the release date
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
2014-06-09 11:30:28 -07:00
Rodrigo Vivi
82ad15fd10 Fix make distclean by fixing includes of version.h
Actually only the igt_core was breaking the make distcheck,
but let's make it consistent and let the code cleaner.

Credits-to: Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
2014-06-09 11:17:20 -07:00
Rodrigo Vivi
5a856e11fc null_state_gen: Fix Makefile.am for make distcheck 2014-06-09 10:48:10 -07:00
Rodrigo Vivi
9bddb5eebd quick_dump: Fix vlv file names on Makefile.am 2014-06-09 10:47:13 -07:00
Chris Wilson
18d2130110 igt/gem_evict_alignment: Fix the memory limits checking
We actually allocate twice as many bo as needed to fill the aperture to
cause ENOSPC, but the entire payload has to still fit into RAM.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75138
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-06-06 09:21:55 +01:00
Chris Wilson
39329479a5 igt/gem_evict_alignment: Fix the memory limits checking
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75138
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-06-06 08:44:18 +01:00
Chris Wilson
033c400e9b igt/gem_evict_alignment: Remove obsolete skip on gen8+
If the BLT commands, aren't fixed yet, they should be. ASAP.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-06-06 08:44:18 +01:00
Wendy Wang
9a70e29f83 Add rc6_residency_counter subtest
Move rc6_residency_check to subtest, add new rc6_residency_counter subtest
for pm_rc6_residency IGT case.

Test results run on platforms show as below:
On HSW
---------------------------------------
[root@x-hswu opt]# ./pm_rc6_residency
IGT-Version: 1.6-g35b31df (x86_64) (Linux: 3.15.0-rc3_drm-intel-nightly_0791a3_20140520+ x86_64)
Subtest rc6-residency-check: SUCCESS
This machine doesn't support rc6pp
This machine doesn't support rc6p
This machine entry  rc6 status.
The residency counter : 0.999667
Subtest rc6-residency-counter: SUCCESS

On IVB
----------------------------------------
[root@IVB tests]# ./pm_rc6_residency
IGT-Version: 1.6-g35b31df (x86_64) (Linux: 3.13.6_20140318+ x86_64)
Subtest rc6-residency-check: SUCCESS
This machine entry  rc6p status.
The residency counter : 0.997000
Subtest rc6-residency-counter: SUCCESS

On BYT
----------------------------------------
root@x-byt:/opt# ./pm_rc6_residency
IGT-Version: 1.6-g0d39021 (x86_64) (Linux: 3.14.0_kcloud_ceabbb_20140521+ x86_64)
Subtest rc6-residency-check: SUCCESS
This machine doesn't support rc6pp
This machine doesn't support rc6p
The residency counter : 1.144333
Test assertion failure function rc6_residency_counter, file pm_rc6_residency.c:131:
Last errno: 0, Success
Failed assertion: counter_result <=1
Debug files must be wrong,
Subtest rc6-residency-counter: FAIL

On BDW
---------------------------------------
[root@x-bdw01 opt]# ./pm_rc6_residency
IGT-Version: 1.6-g0d39021 (x86_64) (Linux: 3.15.0-rc5_drm-intel-nightly_367653_20140521+ x86_64)
Subtest rc6-residency-check: SUCCESS
This machine doesn't support rc6pp
This machine doesn't support rc6p
The residency counter : 0.994333
This machine entry rc6 state.
Subtest rc6-residency-counter: SUCCESS

Signed-off-by: Liu, Lei A <lei.a.liu@intel.com>
Signed-off-by: Wendy Wang <wendy.wang@intel.com>
Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com>
2014-06-05 10:11:38 -07:00
Chris Wilson
b428f24f7c lib: Add debug to memory limits checks
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-06-05 13:34:02 +01:00
Chris Wilson
a1a8aa16fb igt/gem_evict_everything: Compute number of surfaces to saturate the aperture
The goal is to only fill the aperture, not all of memory, so fine-tune
the computed number of surfaces, hopefully avoiding an integer overflow
in the process.

References: https://bugs.freedesktop.org/show_bug.cgi?id=79573
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-06-05 13:34:02 +01:00
Daniel Vetter
5141b21f91 lib/igt_debugfs: Fix spelling docs
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-05 10:29:17 +02:00
Kenneth Graunke
badb026ae0 rendercopy/gen8: Also emit 3DSTATE_WM_DEPTH_STENCIL.
rendercopy was failing to emit 3DSTATE_WM_DEPTH_STENCIL, which is a new
packet on Broadwell.  Mesa emits this packet.

This appears to fix various tests on a fresh boot, when Mesa has never
run.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78890
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78891
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78935
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78936
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78937
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78938
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
Tested-by: Guo Jinxian <jinxianx.guo@intel.com>
Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com>
2014-06-04 10:54:38 -07:00
Ville Syrjälä
11e62a3927 tests/kms_flip: Move EBUSY to a new busy-flip subtest
The EBUSY checking is very fragile currently in case there's any kind
extra delay in the test loop. At least the flip-vs-rmfb fails reliably
on my IVB.

So to make the test less fragile remove the EBUSY check from all the
current flip tests, and instead add a specific busy-flip test. To
better guarantee that we get the EBUSY add a blocking vblank wait just
before we issue the first flip. This maximizes the time we have to
submit two flips during one frame.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-06-04 20:16:01 +03:00
Tim Gore
ddf92db914 intel-gpu-tools: move kms_fence_pin_leak to single test list
In Makefile.sources, kms_fence_pin_leak was in the "Multi" test list,
ie tests with subtests, whereas it is actually simple/single test.
This was confusing the Android script for enumerating tests.

Signed-off-by: Tim Gore <tim.gore@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-04 18:14:56 +02:00
Imre Deak
1451df1cb6 quick_dump: increase reg name column width
Needed by the new long audio register names.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-06-03 22:19:43 +03:00
Imre Deak
ea43f5163a quick_dump: vlv: remove redundant base file specifications
The registers in these files are included in the dumps for all platforms
by default, so no need to specify them explicitly.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-06-03 22:19:43 +03:00
Imre Deak
24cd3843cb quick_dump: vlv: move flisdsi register group to its logical place
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-06-03 22:19:43 +03:00