The challenge here is to race GPU activity versus the gem_close. Using a
large objects makes the window of GPU activity larger - except on !llc
systems we then incur massive overhead from clflush, likely destroying
any race (due to mutex contention). And that mutex contention is
amplified by the number of cores - bad news for Baytrail.
Give up and make the objects smaller and hope that the test is run
frequently enough to catch the race.
References: https://bugs.freedesktop.org/show_bug.cgi?id=71029
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The exercise is moving tiled objects in and out of swap. They are moved
en-block and we test them all, therefore we can randomly test different
bytes from each buffer to have reasonable coverage of all tiles. This
shifts the bulk of the work from checking the tiled bo to kswapd.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Damien dodged this ...
Also run the script while at it.
v2: Don't just capture identifiers for pipe, but also expressions.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Trying to disable the primary planes isn't exactly working at the
moment. W/A it until it works.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
having everythin in the data_t structure makes it hard to understand
what should be set when. Replace that by explicit function parameters.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
This restore the balance between prepare_crtc() and cleanup_crtc(), both
now taking the output as a parameter.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
The only difference is which plane we are talking about. So we really
need one function here with a paramater.
Well, almost. For the primary plane we need to ensure we support
unviversal planes.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Now that we're always using an igt_plane_t, we can get rid of ->type to
use ->directly without those switch() or if()/else
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
A typical example of what comments shouldn't be:
case DRM_PLANE_TYPE_PRIMARY: /* primary */
Well, yes!, it's written just there, PRIMARY!
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Making function to the similar things is very common in programming.
Let's do it once again.
Cairo being a drawing library, it can be used to do the rotation!
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Clearly, someone tried to solve the following warning:
kms_rotation_crc.c:189:6: warning: no previous prototype for ‘check_plane_type’ [-Wmissing-prototypes]
Without really understanding what was the warning about. Make
check_plane_type() static and move it before its user to get rid of the forward
declaration.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Add a function to set an EDID data block on a connector and include a
set of generic EDID blocks for testing.
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Add an API function and a test program to force a particular state on a
connector.
v2: mask the correct part of the minor number to get the card number (Chris
Wilson)
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
If the parent passes a userptr to some private memory, we expect to
still be able to use the userptr in the child.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The forked tests allocate the bo (and thus for userptr, the memory) in
the parent and pass them to all children. The difference for userptr is
that we allocate system memory which the kernel then copies into each
child. As the children need to access the memory for their checks, it
does need to be shared - so allocate the userptr from shared memory!
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=80208
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
New stuff caught.
Plus manually simplify the massive igt_fail_on_f(file == NULL, ...) to
a simple igt_assert(file). We already print the errno (if
applicapable) and the condition, which is equally informative.
Cc: Yi Sun <yi.sun@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: Wendy Wang <wendy.wang@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
We want to unbind fbcon, but only fbcon and only if it's there.
This was broken by the recent patch in 3.16-rc to kick out the vgacon
driver. I've forgotten to push out the relevant fix from the machine
used to create the kick vgacon patches.
v2: Dropped duplicated /, spotted by Damien.
Reported-by: Damien Lespiau <damien.lespiau@intel.com>
Cc: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
We weren't returning straight away when failing to unload the driver, so
the test happilly executed gem_suspend and printed ""module successfully
loaded again".
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>