Use the timer routines for computing elapsed time from igt_core for smaller code. Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> --- lib/igt_aux.h | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/lib/igt_aux.h b/lib/igt_aux.h index 02e70126c..48ba7970f 100644 --- a/lib/igt_aux.h +++ b/lib/igt_aux.h @@ -29,6 +29,7 @@ #define IGT_AUX_H #include <intel_bufmgr.h> +#include <inttypes.h> #include <stdbool.h> #include <stddef.h> #include <sys/time.h> @@ -251,28 +252,24 @@ void igt_unlock_mem(void); * True of COND evaluated to true, false otherwise. */ #define igt_wait(COND, timeout_ms, interval_ms) ({ \ - struct timeval start_, end_, diff_; \ - int elapsed_ms_; \ - bool ret_ = false; \ + struct timespec tv = {}; \ + bool ret_; \ \ - igt_assert(gettimeofday(&start_, NULL) == 0); \ do { \ + uint64_t elapsed = igt_nsec_elapsed(&tv) >> 20; \ + \ if (COND) { \ + igt_debug("%s took %"PRIu64"ms\n", #COND, elapsed); \ ret_ = true; \ break; \ + } \ + if (elapsed > timeout_ms) { \ + ret_ = false; \ + break; \ } \ \ usleep(interval_ms * 1000); \ - \ - igt_assert(gettimeofday(&end_, NULL) == 0); \ - timersub(&end_, &start_, &diff_); \ - \ - elapsed_ms_ = diff_.tv_sec * 1000 + \ - diff_.tv_usec / 1000; \ - } while (elapsed_ms_ < timeout_ms); \ - \ - if (!ret_ && (COND)) \ - ret_ = true; \ + } while (1); \ \ ret_; \ }) -- 2.15.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx