818 Commits

Author SHA1 Message Date
Daniel Vetter
554237f351 tests/gem_cs_tlb: make it more robust
... using a fine roll of duct-tape. Dunno what exactly leaks out from
the previous testcase, but the bo gets moved about a bit and makes the
self-check of the test fail.
2012-10-19 00:26:16 +02:00
Daniel Vetter
ea50871f15 flip_test: check whether wait_vblank fails when it should 2012-10-17 11:09:13 +02:00
Daniel Vetter
3b1fbbf412 flip_test: drop vblank vs. pan
pageflip vs. pan is interesting since we wait for outstanding flips
before updating the fb base address. For vblank absolutely nothing
interesting happens.
2012-10-17 00:35:43 +02:00
Daniel Vetter
7125a338ec flip_test: tune test-durations a bit
15 seconds for timestamp checkers (to at least hit the dreaded hotplug
once), 5 seconds for fast tests that check every vblank something, 30
for slow test (dpms/modeset cycles).
2012-10-17 00:34:43 +02:00
Imre Deak
6473c537d8 flip_test: add wait-for-vblank tests
Signed-off-by: Imre Deak <imre.deak@intel.com>
[danvet: add {} for multi-line but single-statement if block.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-10-16 21:46:18 +02:00
Imre Deak
ae62874cf1 flip_test: add check to see if any event has occured
At the moment select() would time out in case we don't get any event.
When we add vblank events in a later patch, it's possible that we
receive one type of events but not the other type. In this case select()
doesn't time out and we need another way to detect this.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2012-10-16 19:40:06 +03:00
Imre Deak
fe7fea0be3 flip_test: add event sequence number tracking
Signed-off-by: Imre Deak <imre.deak@intel.com>
2012-10-16 19:40:06 +03:00
Imre Deak
887a2597fa flip_test: add logic to track pending events
When we add the vblank tests later, it can happen that one type of event
is pending while we are servicing another. Prepare for that by
maintaining a pending/completed event mask.

No functional change.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2012-10-16 19:40:06 +03:00
Imre Deak
a7d9a57c47 flip_test: make page flip tests conditional
Since later we want to add vblank tests where we don't want to flip,
make the flips and corresponding state checks conditional.

No functional change.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2012-10-16 19:40:06 +03:00
Imre Deak
eecae8dfef flip_test: unify the name of the current test in status messages
Signed-off-by: Imre Deak <imre.deak@intel.com>
2012-10-16 19:40:06 +03:00
Imre Deak
6c2b53d894 flip_test: store the pipe id in the test context obj
For DRM_IOCTL_WAIT_VBLANK we'll have to pass the pipe id - as opposed to
the crtc id required by the rest of the IOCTLs we use.

Thanks for Chris Wilson for pointing this out.

No functional change.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2012-10-16 19:40:06 +03:00
Imre Deak
641261f4fe flip_test: don't skip checks for sequence #1
So far we skipped some tests for seq#0 and #1, since at that point we
were missing the 'last' state against which we could compare the current
state. Since in the previous patches we fixed the ordering in the test
loop and moved the increment of count to the update state phase, we have
a proper 'last' state for seq#1, so enable the tests already at that
point.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2012-10-16 19:40:06 +03:00
Imre Deak
ee8f485e55 flip_test: factor out the event state
Factor out the status vars that are specific to the flip events into a
separate structure. This will allow us tracking the vblank events with
the same code.

We move the increment of the flip event counter to the end of the test
loop, but this shouldn't affect anything. This is the only functional
change.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2012-10-16 19:40:02 +03:00
Imre Deak
5fa695529c flip_test: swap the order of check state/run test step
At the moment we first check the state then run the test step in our
test loop. Swapping the order makes the starting state of each iteration
better defined, allowing an easier extension of these steps in the
future.

Since now it's guaranteed that we exit the event loop with no pending
flips, we can also get rid of the final flushing of events.

We don't want the first initializing flip to affect the test loop other
than setting an initial FB, so before starting the test loop wait for it
to complete by calling wait_for_events() and leave the flip event
counter at zero.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2012-10-16 19:34:28 +03:00
Imre Deak
960a3895a0 flip_test: split the flip handler into logical parts
The handler consits of handle_event/run_test/check_state/update_state
logical steps, split the function accordingly. This is needed by the
following patches that need to do part of these steps for both flip and
vblank events.

No functional change.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2012-10-16 19:34:28 +03:00
Imre Deak
9e43ecdf21 flip_test: store current flip/received timestamps in the context obj
This is needed by the next patch that splits the flip handler function
into logical parts. Make the timestamps accesible to these parts.

No functional change.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2012-10-16 19:34:28 +03:00
Imre Deak
161e525fd8 flip_test: factor out the final state check
Needed by an upcoming patch where we want to make a final state check
for both the flip and vblank events.

No functional change.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2012-10-16 19:34:28 +03:00
Imre Deak
c96d18a994 flip_test: factor out the event loop/wait for event logic
Needed by an upcoming patch where we want to wait for an event without
starting a new round of test run.

No functional change.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2012-10-16 19:34:28 +03:00
Imre Deak
0699dc7259 flip_test: move output panning inside the flip_handler
Move the panning to a more logical place where the rest of the test
steps are performed. As Daniel Vetter pointed it out, the proper place
is _after_ the flip command is sent, so that fb_set_base correctly waits
for any outstanding flip. So move the function between the flip and the
dpms/modeset off calls.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2012-10-16 19:33:33 +03:00
Imre Deak
3731fee849 flip_test: store fb width, height in test context object
We will need these in event handlers, so store them where the handlers
have access to them.

No functional change.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2012-10-16 18:45:16 +03:00
Imre Deak
f9f6bff80d flip_test: factor out drmModePageFlip
For better readability and to prepare for the upcoming patch marking
pending flip events with a flag.

No functional change.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-10-16 16:55:04 +02:00
Imre Deak
43f6f873eb test_flip: fix checking for delayed event reception
The intent for the time limit seems to be 2ms, but the current condition
will result in a 1s limit and makes the check against tv_usec redundant.
Fix the condition to check for a 2ms limit.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-10-16 16:54:33 +02:00
Imre Deak
95a967faa2 flip_test: check drmHandleEvents()' return value
Signed-off-by: Imre Deak <imre.deak@intel.com>
[danvet: s/assert/do_or_die]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-10-16 16:54:10 +02:00
Imre Deak
f1b1729a8a flip_test: reset the state for each test run
Each test run needs a clean state.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-10-16 16:52:14 +02:00
Imre Deak
472e8a70c2 flip_test: free FBs after each test run
Though the FBs will be freed implicitly at process exit, with the
growing number of test cases it's probably better not to let them
accumulate and free them as soon as we can.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-10-16 16:52:04 +02:00
Imre Deak
21393431f1 drmtest: add function to remove an DRM FB
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-10-16 16:51:56 +02:00
Ben Widawsky
dc3ac00f03 sysfs_rps: Add negative test case for bad values
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2012-10-15 10:05:56 -07:00
Daniel Vetter
50d46750d9 lib/mmio: gen2 has a bigger register window, too
It's split up into two parts, with the gtt pte range in between.
Without this I couldn't read the ADPA register ...
2012-10-12 10:45:52 +02:00
Imre Deak
31dfc98a30 fix warn in testdisplay: ignoring return value of 'chdir'
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-10-10 15:59:19 +02:00
Imre Deak
0bf5fd894c fix warn in prime_nv_*: ignoring return value of ‘fgets’
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-10-10 15:59:17 +02:00
Imre Deak
bcfc0f1e4b fix warn in gem_reg_read: 'read' shadows a global declaration
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-10-10 15:59:14 +02:00
Imre Deak
3a622b9784 fix warn in sysfs_{rc6, rps}*: ignoring return value of 'fscanf'
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-10-10 15:59:12 +02:00
Imre Deak
b614b4d648 fix warn in gem_readwrite: 'read/write' shadows a global declaration
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-10-10 15:59:10 +02:00
Imre Deak
9de58cf6c1 fix warn in intel_reg_snapshot: ignoring return value of 'write'
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-10-10 15:59:07 +02:00
Imre Deak
5efd3d3d22 fix warn in intel_error_decode: ignoring return value of 'asprintf'
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-10-10 15:59:05 +02:00
Imre Deak
6456e75f0d fix warn: 'div' shadows a global declaration
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-10-10 15:59:02 +02:00
Daniel Vetter
1a83c0990a tests/gem_exec_big: fixups
- don't emit a self-modifying batch, the kernel doesn't like those
- also change the buffer size, to exercise all corner-cases of the
  sg_table stuff
2012-10-09 22:47:59 +02:00
Daniel Vetter
fa6b0208ab tests/gem_exec_big: add a reloc at the end of the big batch
Since that's the other place where the broken get_page blows up.

Actually it seems to only blow up on specific pages ...
2012-10-09 19:53:52 +02:00
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
5f94468f52 lib: remove auto-quiescenting of the gpu
In retrospective, this is an ugly idea. Any tests that needs this
can call it themselves.
2012-10-09 19:27:41 +02:00
Daniel Vetter
b8e384a4d5 lib: make drmtest_progress more robust 2012-10-09 17:50:40 +02:00
Daniel Vetter
e5722bac9c tests: update .gitignore
I've thought I've fixed this, but looks like I've failed to commit.
2012-10-09 17:32:00 +02:00
Daniel Vetter
c9795c6dfe tests: add gem_cs_tlb
Should test tlb coherency, but somehow it fails to hit the bug I want
it to hit ... needs more work.
2012-10-09 17:30:59 +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
dc5d76e2bf tests/flip_test: check -EBUSY and -EINVAL behaviour
We want -EBUSY for a pending flip and -EINVAL if the pipe is off
(either dpms off or completely off). With the small exception that
someone thought it would be funny to return -EBUSY when the crtc is
fully off.
2012-10-04 22:09:16 +02:00
Daniel Vetter
1422c22e89 tests/*storedw*: add subcases with more outstanding batches
Just in case this is better at hitting seqno signalling races ...

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-10-04 13:22:16 +02:00
Daniel Vetter
826326bc7c flip_test: fix timestamp order
When grabbing the timestamp after a flip, it has a decent chance to
actually be after the flip. Surprising.
2012-10-03 23:16:18 +02:00
Daniel Vetter
630dd4087d tests/gem_caching: only disable on vintage i965g/gm
Hooray for confusing macros!

Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-10-03 19:01:30 +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
Daniel Vetter
9965299cf3 flip_test: add an explicit flag for timing checks
We'll need this for the wait_vblank test cases.
2012-10-03 08:26:46 +02:00