mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-11 01:46:14 +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);
|
kmsg(KERN_INFO "%s: exiting, ret=%d\n", command_str, igt_exitcode);
|
||||||
igt_debug("Exiting with status code %d\n", 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) {
|
if (!test_with_subtests) {
|
||||||
struct timespec now;
|
struct timespec now;
|
||||||
const char *result;
|
const char *result;
|
||||||
@ -1401,6 +1404,20 @@ void igt_waitchildren(void)
|
|||||||
igt_fail(err);
|
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 */
|
/* exit handler code */
|
||||||
#define MAX_SIGNALS 32
|
#define MAX_SIGNALS 32
|
||||||
#define MAX_EXIT_HANDLERS 10
|
#define MAX_EXIT_HANDLERS 10
|
||||||
|
@ -610,6 +610,7 @@ bool __igt_fork(void);
|
|||||||
for (int child = 0; child < (num_children); child++) \
|
for (int child = 0; child < (num_children); child++) \
|
||||||
for (; __igt_fork(); exit(0))
|
for (; __igt_fork(); exit(0))
|
||||||
void igt_waitchildren(void);
|
void igt_waitchildren(void);
|
||||||
|
void igt_waitchildren_timeout(int seconds, const char *reason);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* igt_helper_process:
|
* igt_helper_process:
|
||||||
|
@ -155,7 +155,7 @@ sync_ring(int fd, unsigned ring, int num_children)
|
|||||||
|
|
||||||
gem_close(fd, object.handle);
|
gem_close(fd, object.handle);
|
||||||
}
|
}
|
||||||
igt_waitchildren();
|
igt_waitchildren_timeout(20, NULL);
|
||||||
igt_assert_eq(intel_detect_and_clear_missed_interrupts(fd), 0);
|
igt_assert_eq(intel_detect_and_clear_missed_interrupts(fd), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user