- reset the count when forking
- don't add the same handler multiple times
- don't restore the exit signal handlers in the forked helper
process
- reset the exit handler count once called to make sure we don't call
it multiple times when dying
- don't wait for the signal helper if it's gone already
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
For reloc offsets and batch start/len. Doesn't quite fit into the test
subject at hand here, but meh.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Introduced when refactoring the patch in
commit c1ee0bb53269ded7b79966d081518d689639bac7
Author: Imre Deak <imre.deak@intel.com>
Date: Mon Jul 29 16:43:31 2013 +0300
intel_batchbuffer: add support for non-32bit blt copies
No functional change.
Signed-off-by: Imre Deak <imre.deak@intel.com>
This exercises the slightly faulty kernel w/a that Eric fixed in
commit e844b990b1df9242bb91b7d490552f3198946838
Author: Eric Anholt <eric@anholt.net>
Date: Tue Jul 31 15:35:01 2012 -0700
drm/i915: Don't forget to apply SNB PIPE_CONTROL GTT workaround.
If a buffer that was the target of a PIPE_CONTROL from userland was a
reused one that hadn't been evicted which had not previously had this
workaround applied, then the early return for a correct
presumed_offset in this function meant we would not bind it into the
GTT and the write would land somewhere else.
Fixes reproducible failures with GL_EXT_timer_query usage in apitrace,
and I also expect it to fix the intermittent OQ issues on snb that
danvet's been working on.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=48019
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=52932
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Carl Worth <cworth@cworth.org>
Tested-by: Carl Worth <cworth@cworth.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
I've fumbled the logic inversion when converting to igt_require way
too often, so lets add something for dummies like me ;-)
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This finishes the objective in the last patch which was to actually deal
with physical addresses, and not the PTEs.
GEN6+ Provided support for physical addresses above 4GB. I'm not
actually sure what Ironlake supported, and don't feel like firing up the
timemachine.
v2: Add support for gen4, gen5, and haswell.
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
The GTT PTEs that the tool is trying to compare is really about
addresses, and not the PTE itself. To accomplish this, make which
calculates the physical address we actually want.
This commit itself doesn't change any functionality; just the wording in
the code.
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
The warning that vmap isn't supported is useful, but it shouldn't get in
the way of developers (or distros) being able to use -Werror.
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
We need to be careful to remember that fb-width is not always the same
as hdisplay, since for panning we allocate a larger framebuffer. So fix
up the printfs to use hdisplay/vsisplay since that should be uniform
across the array.
Regression from
commit 919d68901187fa797a9b648fcf87c838fae22fa3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Thu Aug 29 15:33:53 2013 +0100
kms_flips: Operate on an array of crtc
Buzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68832
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Much better at hitting the list corruption here on my machines
than what we have thus far.
Note that somehow I just can't reproduce the bug any more. No idea
why. But I guess it's time to simply push this pile out.
v2: Limit threads and rounds to something reasonable.
v3: Use igt_permute_array to avoid EINVAL due to duplicated bo.
v4:
- Add a variant of the forked tests with multiple drm fds.
- Tune the swapped forked tests a bit to complete in a reasonable
amount of time.
v5: Add some memory pressure from the cpu by using cpu mmaps (which
directly hit shmem, so bypass gem completely).
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This turned out to be the reason one one of my tests was hitting
the list corruption bug - we need a good deal more memory pressure.
So I'll now add a new testcase for that.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Making sure that we correctly collect the exit codes from all children
is a bit a hassle. So add another magic igt codeblock for easy forking
and joining.
Note that children are (currently at least) not allowed to call igt_skip.
Add an assert to enforce this.
v2:
- Properly propagate the exit code.
- Fix the segfault.
- Add a child int and num_children paramter to the magic codeblock as
suggested by Chris Wilson.
- Don't dump noise into stdout when a child thread fails, the parent
will do that for us already.
v3: Now with some docs.
v4: Fixup igt_waitchildren to properly reset state so it can be used
again.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
The goal is to flip the same framebuffer on a pair of CRTCs (clone mode)
and check that (a) the flip works in all combinations of workloads, and
(b) that we can hit the desired refresh rate under the simplest, most
ideal of conditions.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This should be no functional change as we operate on an array of
crtc[1]. Later we shall test clone mode across a number of crtc.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
For machine with split BCS/RCS rings, we also need to test whether we
correctly wait upon outstanding render work before flipping and changing
modes. This should also serve to exercise the ring selection code for
flips.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>