On Tue, 14 Apr 2020 12:05:09 -0700, Chris Wilson wrote:
>
> The poll() is proving unreliable, where our tests timeout without the
> spinner being terminated. Let's try a blocking read instead!

Weird, wondering if all we need to do is set TFD_NONBLOCK on the fd?

>
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/1676
> Signed-off-by: Chris Wilson <[email protected]>
> ---
>  lib/igt_dummyload.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c
> index 99ca84ad8..a59afd45b 100644
> --- a/lib/igt_dummyload.c
> +++ b/lib/igt_dummyload.c
> @@ -399,12 +399,13 @@ igt_spin_factory(int fd, const struct igt_spin_factory 
> *opts)
>  static void *timer_thread(void *data)
>  {
>       igt_spin_t *spin = data;
> -     struct pollfd pfd = {
> -             .fd = spin->timerfd,
> -             .events = POLLIN,
> -     };
> +     uint64_t overruns = 0;
> +     int ret;
>
> -     if (poll(&pfd, 1, -1) >= 0)
> +     do {
> +             ret = read(spin->timerfd, &overruns, sizeof(overruns));
> +     } while (ret == -1 && errno == EINTR);

do {} while (!overruns) and skip if () below?

> +     if (overruns)
>               igt_spin_end(spin);
>
>       return NULL;
> --
> 2.26.0
>
> _______________________________________________
> Intel-gfx mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to