summaryrefslogtreecommitdiff
path: root/tests/kms_busy.c
AgeCommit message (Collapse)Author
2019-04-18lib/igt_dummyload: Get rid of 'batch' on spinner accessorsMika Kuoppala
There is no guarantee that spinners are and will be implemented using batches. As we have igt_spin_t, manipulate it through igt_spin_* functions consistently and hide the batch nature. Cc: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-04-01kms_busy: Use igt_waitchildren_timeout()Chris Wilson
Replace the convoluted raising of SIGALRM from the child with an interruptible sleep in the parent with the equivalent and far more natural igt_waitchildren_timeout(). Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103182 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2018-10-02igt/kms_busy: Flush request queue when re-enabling hangcheckChris Wilson
Enabling hangcheck only takes effect at the start of a new request queue. Before we re-enable hangcheck after our poking around, we therefore need to wait until the gpu is idle otherwise the next test will start without hangcheck and subsequently hang forever. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Petri Latvala <petri.latvala@intel.com> Tested-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2018-10-01igt: Require a display (KMS enabled) for KMS testsChris Wilson
Simple rule of thumb, if a kms_* test calls igt_display_init() in its global fixture, skip the entire test if the driver has disabled KMS. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Antonio Argenziano <antonio.argenziano@intel.com>
2018-07-06lib: Convert spin batch constructor to a factoryChris Wilson
In order to make adding more options easier, expose the full set of options to the caller. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2018-03-19tests/kms_busy: Convert to using igt_get_single_output_for_pipe, v2.Maarten Lankhorst
Put a single igt_display_require_output_on_pipe in the fixture, so we know we always have an output on the pipe and can always assume it's not NULL. Changes since v1: - Move igt_subtest_group upwards, to prevent a skip when no valid output can be found on pipe A, but can be found on other pipes. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> #v1 Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
2017-10-03lib/igt_kms: Change output->pending_crtc_idx_mask to output->pending_pipeMaarten Lankhorst
igt_output_set_pipe with PIPE_ANY used to mean that we bind the output to any pipe, but this is now a deprecated alias for PIPE_NONE, and means the output will be unbound. Because of this it's better to change output->pending_crtc_idx_mask to an enum pipe, because only a single choice may be given for a pipe. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2017-10-02tests: Stop looking at plane private membersMaarten Lankhorst
Most of these tests have no reason to look at those members, so try other ways of getting the information. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2017-09-07igt/gem_exec_schedule: Basic tests for preemptionChris Wilson
We queue N low priority hanging batches across the engines and check that our high priority write over takes them. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
2017-08-14lib/kms: Add for_each_pipe_staticDaniel Vetter
for_each_pipe cannot be used for enumerating testcases, so provide something that can. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2017-08-04kms_busy: Fix basic-modeset-* name format parametersPetri Latvala
Commit 37b06eb9b526df6c23ec75f7a9ecd9547fa76695 limited the used engines to only the default engine, dropping the engine name from subtest names, but left over the format parameter. Fixes: 37b06eb9b526 ("tests/kms_busy: Only test against one engine") Signed-off-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Marta Lofstedt <marta.lofstedt@intel.com> CC: Daniel Vetter <daniel.vetter@ffwll.ch>
2017-08-04tests/kms_busy: Only test against one engineDaniel Vetter
Back when we used cs flips it made sense to go through different engines, since a buffer busy on an engine that we couldnt' use for cs flipping ended up in different paths. But with atomic we use a worker for all flips, and going through the combinatorial growth of engines just wastes precious machine time. More so the more modern the platform is. Of course gem tests should still do some diagonal testing across all engines, but the kms side can afford to be a bit cheaper. v2: Make it compile. Oops. Also make sure we don't break fast-feedback.testlist. Adding a mode where we depend upon all engines isn't really possible, because there's only 1 exclusive fence and that's the only thing a flip waits for. Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Acked-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2017-07-06Revert "igt: Remove default from the engine list"Chris Wilson
This reverts commit d7a0b61450797a3d6644c65aebf75c2a90da1a15.
2017-07-06igt: Remove default from the engine listTvrtko Ursulin
Default is not an engine but an ABI alias for RCS. Remove it from the engine list to eliminate redundant subtests and test passes. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Acked-by: Daniel Vetter <daniel.vetter@intel.com>
2017-06-28tests/kms_busy: Remove gem_bo_busy checksMaarten Lankhorst
They're not useful since GPU reset may kill off our spin batch. This used to be the case but wasn't in the kernel when I wrote this test. But the following commit reintroduced this behavior: commit 36703e79a982c8ce5a8e43833291f2719e92d0d1 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Thu Jun 22 11:56:25 2017 +0100 drm/i915: Break modeset deadlocks on reset Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-06-20tests/kms_busy: Add test to reproduce the CI kms_flip killerMaarten Lankhorst
When aborting kms_flip.render-flip-vs-modeset in CI the test hangs on RMFB. Make a test that simulates nonblocking stuck pageflip vs blocking modeset. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-06-16tests: Rename I915_MAX_PIPES to IGT_MAX_PIPESLeo (Sunpeng) Li
Name should not be driver-specific. Signed-off-by: Leo (Sunpeng) Li <sunpeng.li@amd.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-03-08igt: Markup more tests that require GEMChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-02-06kms_busy: Neuter the hangcheck timer for the modeset-*-pipe tests.Maarten Lankhorst
The hangcheck timer may invoke a gpu reset before we finished waiting. To prevent this, we disable it and re-enable it afterwards. This will make sure that the nonblocking modeset waits for the fb before doing the modeset. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-31tests/kms_busy: Add support for dynamic number of planesRobert Foss
Add changes reflecting the new support for dynamic number of planes per pipe. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2017-01-26kms_busy: Add extended tests that force a hang.Maarten Lankhorst
The intel driver adds a timeout to each atomic update of 10s for the new fb. Make sure this works as intended, and also test what happens when hanging the old framebuffer, with and without modeset. The driver waits indefinitely on the old framebuffer, but another blocking update will wait at most 10 seconds for it. Abuse this fact in a testcase. For added bonus also add some tests that make sure this works on older gens that perform a display reset during gpu reset. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2016-12-01igt/kms_busy: Add more information about the state of the boChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-11-29igt/kms_busy.c: Use new igt_spin_batchAbdiel Janulgue
v7: Adapt to api rename v8: Tidy up finish_fb_busy (Chris Wilson) v10: Adapt to api rename Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
2016-08-24igt/kms_busy: Fix subtest enumerationChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-08-23Split out the kms tests from gem_busy to avoid the cairo dependencyChris Wilson
Make kms_busy a separate set of tests so that gem_busy is kept within the core set and not thrown out from Android due to the cairo dependency of rendering the fb. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>