Add write-verify test to gem_fence_thrash. Test will create
multiple threads per fence then verify the write into fenced region.
v2: non-threaded, non-tiled tests added. suggested by Chris Wilson.
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This adds a test to make sure that the execbuffer validation routine is
checking for invalid addresses, single entry overflow, and multi-entry
wrapping overflow.
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
flip-vs-bad-tiling tests that page flipping to a Y-tiled buffer returns
an error correctly, rather than triggering kernel BUG for instance.
Create a third fb for this purpose. After the fb has been created,
change its tiling mode to Y. When performing a flip, target this
Y-tiled fb and make sure we get the expected error value.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
The flip-vs-panning-vs-hang is just like the regular flip-vs-panning
test, except it also hangs the GPU. This will test whether panning
works after a pending page flip has been cancelled by a GPU reset,
and also whether page flip events get delivered correctly.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Do not use the TEST_HANG flag to determine whether page flip events are
used. Add a new TEST_NOEVENT flag that can be used to disable the use
of events instead.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
autoconf can be configured to not generate a config.h but to give the
defines with command line arguments instead. In this case, there's no
config.h to include.
To work in both cases autoconf adds a HAVE_CONFIG_H define on the command
line to signal there's a config.h to include.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Invoking say,
sudo ./tests/gem_render_linear_blits 1
does not make a lot of sense as we're creating a single bo. The test
does not yell at you and passes, even if the rendercopy function does
not do anything. This makes it quite harmful when trying to debug
rendercopy without realizing that count is the number of allocated bos
and must be >= 2.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
That variable is useless, instead the variables specified_mode_num and specified_disp_id can cover all the situation.
For parameter -o, all three instances should work:
./testdisplay -o 21,4 only test the 4th mode on the connector with id 21.
./testdisplay -o 21 test all the mode lines on the connector wiht id 21.
./testdisplay -o ,4 the -o is ignored, just like -a.
Signed-off-by: Yi Sun <yi.sun@intel.com>
Call context destroy with proper ioctl number and
add test to verify that we can't post batchbuffers
with destroyed context.
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
The flip-vs-modeset-vs-hang test will:
1. simulate a GPU hang
2. exec a nop batch
3. schedule a page flip
4. perform a modeset operation
With the current buggy kernel driver, the modeset operation will
hang indefinitely waiting for the flip to complete. Since the
rings are stopped, that will never happen. The current GPU reset
code doesn't play well with page flips either, so a GPU reset
won't fix things.
Once the kernel driver is fixed, the eventual GPU reset will
save the day.
The nop batch buffer is required only because the kernel can't
currently detect GPU hangs, unless there is at least one user
submitted request pending.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Pass an argument to do_page_flip() telling it whether to request flip
events.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Return error code 77 to skip test if debugfs entry is not
available.
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59116
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
It can specify the display by the connector id which list as the first column of ./testdisplay -i.
E.g. command "./testdiplay -o 1,4" means setting number 4 mode line on the display with connector id 1.
v2. Specify the display by id which can be got from option '-i'
Signed-off-by: Yi Sun <yi.sun@intel.com>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
- adapt to use debugfs interface that can set seqno to arbitrary value
- fix dynamic buffer allocation
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
basic test to share a BO, add as a udl framebuffer, and call the dirty
ioctl on it so we cause the vmapping to happen
[danvet: Snatched up from Dave's prime branch, ocd name and bikeshed
whitespace a bit.]
Now that we've abandonded the autohell testrunner, need to port this
over. Easiest is to just add another testcase ...
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
kms_flip doesn't build due to missing -lrt.
The build was broken due to a typo in this commit:
commit acdf7171264a5139caabb78127c9eef5080c0682
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date: Sat Dec 15 00:48:47 2012 +0100
tests: s/flip_test/kms_flip
OCD wins!
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
For some reason libudev.pc brings in -lrt as well, which probably
caused the typo to go unnoticed.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
To check that the kernel doesn't fall over when tearing down a life
fb. Confirmed that it exercises the right codepath with printk.
Also fix an issue Imre introduced in
commit fe7fea0be3b5f418b76dc7834e73b31827484429
Author: Imre Deak <imre.deak@intel.com>
Date: Tue Oct 16 04:09:43 2012 +0300
flip_test: add event sequence number tracking
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
... to test the latency of rmfb, getfb and addfb. Since if those still
can cause spikes, we have a problem.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This way we can still test basic pageflips on kernels with broken
locking while still failing when the timestamps/framecounts are wrong.
Also disable the delay check on analog tv, timings on those ports are
truely screwed-up
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Fixes build failure on Solaris:
gem_seqno_wrap.c: In function ‘run_cmd’:
gem_seqno_wrap.c:328:3: error: implicit declaration of function ‘kill’ [-Werror=implicit-function-declaration]
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
For seqno comparison to work they have to be less than UINT32_MAX/2
apart. So when crossing the half way of seqno space, be careful not
to sync anything as this causes gpu hangs. Do real test with
syncing only when we are about to wrap.
v2: Don't spam if no rendercopy was found, only warn once
Needed by clock_gettime(). This isn't a problem if libudev is used,
as that pulles librt with it.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Only 32-bit of mmap address space, but with PAE we may be trying to
allocate more than 4 GiB of memory.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Kernel checks have been eased in
commit c1f093e09c4ceb583b04d11e767bb3201812e4d2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Mon Dec 3 11:49:07 2012 +0000
drm/i915: Remove check for conflicting relocation write-domains