mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-10 09:26:10 +00:00
igt/gem_sync: Enforce a timeout of 20s
The sync test is supposed to complete in 10s. But some bugs cause it to run very, very slowly. As a defence against those, terminate the test if we wait for more than 20s. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
3482925454
commit
754876378d
@ -1131,6 +1131,9 @@ void igt_exit(void)
|
||||
kmsg(KERN_INFO "%s: exiting, ret=%d\n", command_str, igt_exitcode);
|
||||
igt_debug("Exiting with status code %d\n", igt_exitcode);
|
||||
|
||||
for (int c = 0; c < num_test_children; c++)
|
||||
kill(test_children[c], SIGKILL);
|
||||
|
||||
if (!test_with_subtests) {
|
||||
struct timespec now;
|
||||
const char *result;
|
||||
@ -1401,6 +1404,20 @@ void igt_waitchildren(void)
|
||||
igt_fail(err);
|
||||
}
|
||||
|
||||
/**
|
||||
* igt_waitchildren_timeout:
|
||||
*
|
||||
* Wait for all children forked with igt_fork, for a maximum of @seconds.
|
||||
*
|
||||
* Wraps igt_waitchildren() and igt_set_timeout()
|
||||
*/
|
||||
void igt_waitchildren_timeout(int seconds, const char *reason)
|
||||
{
|
||||
igt_set_timeout(seconds, reason);
|
||||
igt_waitchildren();
|
||||
igt_reset_timeout();
|
||||
}
|
||||
|
||||
/* exit handler code */
|
||||
#define MAX_SIGNALS 32
|
||||
#define MAX_EXIT_HANDLERS 10
|
||||
|
@ -610,6 +610,7 @@ bool __igt_fork(void);
|
||||
for (int child = 0; child < (num_children); child++) \
|
||||
for (; __igt_fork(); exit(0))
|
||||
void igt_waitchildren(void);
|
||||
void igt_waitchildren_timeout(int seconds, const char *reason);
|
||||
|
||||
/**
|
||||
* igt_helper_process:
|
||||
|
@ -155,7 +155,7 @@ sync_ring(int fd, unsigned ring, int num_children)
|
||||
|
||||
gem_close(fd, object.handle);
|
||||
}
|
||||
igt_waitchildren();
|
||||
igt_waitchildren_timeout(20, NULL);
|
||||
igt_assert_eq(intel_detect_and_clear_missed_interrupts(fd), 0);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user