Don't use a negative index into the array if the desired element is
negative, just wrap around properly into the ring for the chart.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
We already allocate enough objects to thrash the ppGTT VMs, so allow us
to reuse the batch buffers for some efficiency gains and through the
contention more towards the ctx->vm.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Play nice, especially with the subtest, and wait for the children to
exit before finishing the test. If we don't we end up with a fork bomb
for some unknown reason...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Now that we are no longer busy-spinning inside random(), we can spend
more time exercising i915.ko
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
random() being a good multithread-safe RNG is too slow to be used in
stress tests, especially for a seemingly trivial task of randomising the
order of an array.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This reverts the effect of two commits
06fb6c233dd82aac766aa9206644f6eff668ca99
264e1ac10ac14a098a78cc9f96c4e7cabb124ee5
Both of these were to stop demos/intel_sprite_on
from being built, but the first was just broken.
So this commit re-enables building intel_sprite_on.
However, intel_sprite_on will not build in recent
Android trees. To overcome this the version
of IGT kept in the Android repository will carry a patch
to intel_sprite_on, and the automatic build test of
IGT on android will patch the freedesktop code on the fly.
Signed-off-by: Tim Gore <tim.gore@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Just to make sure this keeps working since a patch to WARN_ON using
dumb buffers in execbuf was accidentally merged.
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
intel_sprite_on wont build on Android. Previous
attempt to disable was just wrong!
Signed-off-by: Tim Gore <tim.gore@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
The android makefiles were passing the -std=c99 flag to the
compiler which disables the typeof keyword. This causes a
build fail for a recent addition to igt_aux.h.
Change this to -std=gnu99, which is the flag used in the
linux build
Signed-off-by: Tim Gore <tim.gore@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Write the version.h.tmp file into the build directory instead of source
directory. This allows out of tree building when those two are not the
same.
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Add a function to lock memory into RAM and use it in the
gem_tiled_swapping test to reduce the amount of allocated memory
required to force swapping. This also reduces the amount of time
required for the test to complete, since the data set is smaller.
The following durations were recorded with gem_tiled_swapping on a
haswell system before the change:
Subtest non-threaded: SUCCESS (55.889s)
Subtest threaded: SUCCESS (810.532s)
and after:
Subtest non-threaded: SUCCESS (11.804s)
Subtest threaded: SUCCESS (268.336s)
v2: add various assertions and requirements and make sure
gem_tiled_swapping works on systems with less RAM (Daniel Vetter)
v3: fix allocation size calculation
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Log domains can be used to identify the source of log messages, such as
the test being run or the helper library.
v2: Add separate domains for different parts of the helper library and
use an empty default domain for applications.
Expand the log output to include the process name and the log level
of the message in addition to the domain and pid.
Print the expanded message only for warning and debug messages.
v3: check for glibc before using program_invocation_short_name
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Use images with a smaller file size, created by saving the left and
right stereo output of glxgears.
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
The valid pipe/connector combo check was lost in
commit 57259d714d3fe1170cf931af72648219856a9918
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date: Mon Nov 24 16:08:32 2014 +0100
lib/igt_debugfs: Don't setup crc in _new
Restore it to make the test again useful on CHV.
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Report SKIP only if none of the pipe/connector combos worked, instead of
trying to report for each pipe separately.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
On CHV we sometimes see not just one but two bad CRCs. No real idea
what would cause that, but let's just throw away the second CRC as
well to gain some stability for the tests.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Aim the dummy load to the current back buffer instead if the front
buffer. Assuming the idea is to get the next flip to be stuck behind
the dummy load?
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Try to tune the dummy load to ~1 second. The calibration happens the
first time dummy load is generated.
v2: Actually do the number of ops intended and
calibrate to 1 second and not 2
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Make the dummy load independent of the display resolution by using a
two fixed size dummy bos to generate the load. As a final step do
another copy from one of the dummy bos to the fb to make sure there's
a dependency between the dummy load and any subsequent operation on
the fb.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
swap() will swap its two arguments while keeping the required
tmp variable hidden. Makes for neater code.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
When setting the calculated middle frequency value the test assumes that
the HW/kernel rounds this value according to a 50MHz step value. This is
not so at least on VLV/CHV, on my B0 BYT-M for example this step value
is 22MHz, so there the test will fail.
To fix this get the nearest supported value by setting the target
frequency as a min or max frequency and read it back. The kernel will
round the returned value to the nearest supported.
v2:
- remove the 50MHz rounding that was done for non-VLV platforms, the new
way of rounding should provide the correct value for all platforms
(Ville)
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Imre Deak <imre.deak@intel.com>
When changing the sysfs GT min/max frequencies, the kernel won't
explicitly change the current frequency, unless it becomes out of bound
based on the new min/max values. The test happens to work on non-VLV
platforms because on those the kernel resets the current frequency
unconditionally (to adjust the RPS interrupt mask as a side-effect) and
that will lead to an RPS interrupt setting the minimum frequency.
To fix this load the GPU after decreasing the min frequency and before
checking the current frequency. This should set the current frequency to
the minimum.
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Imre Deak <imre.deak@intel.com>
At least on VLV when forcing a new GT frequency by writing to the
min/max freq sysfs entries the kernel doesn't wait until the new
frequency settles, so the subsequent readback check might fail. To fix
this wait until the current frequency is between the min/max values
using a 10ms timeout.
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Imre Deak <imre.deak@intel.com>
As we require a pipe enabled to generate vblanks, the first step is to
then to check that pipe 0 is active or else skip the test.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Check that the more obvious userspace error conditions are handled by
the kernel, ideally without loss of data. These include nonblocking
waits, passing invalid buffers and passing buffers of the incorrect
length.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Here is a cheap way for this test to give consistent results. This
doesn't change the usefulness of this test, hopefully.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85270
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
gem_gpgpu_fill was added in commit 4ec8479 (tests: Add gem_gpgpu_fill),
but wasn't added to .gitignore.
Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Install the exit handler to reset connector states whenever
kmstest_force_connector is called, so that the connector states are
always reset even if a test fails.
Signed-off-by: Thomas Wood <thomas.wood@intel.com>