[igt-dev] [PATCH i-g-t v6 3/4] lib/xe/xe_spin: Handle spinner timer for Xe as well
Ch, Sai Gowtham
sai.gowtham.ch at intel.com
Fri Jul 28 10:09:48 UTC 2023
> -----Original Message-----
> From: Hogander, Jouni <jouni.hogander at intel.com>
> Sent: Thursday, June 22, 2023 11:16 AM
> To: igt-dev at lists.freedesktop.org
> Cc: Hogander, Jouni <jouni.hogander at intel.com>; Ch, Sai Gowtham
> <sai.gowtham.ch at intel.com>
> Subject: [PATCH i-g-t v6 3/4] lib/xe/xe_spin: Handle spinner timer for Xe as well
>
> Current spinner implementation for Xe doesn't support setting timeout. Fix this
> by handling timers same way as for i915 as well.
>
> Cc: Sai Gowtham Ch <sai.gowtham.ch at intel.com>
>
> Signed-off-by: Jouni Högander <jouni.hogander at intel.com>
> ---
> lib/xe/xe_spin.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/lib/xe/xe_spin.c b/lib/xe/xe_spin.c index 9f511e14f..d8c665f39
> 100644
> --- a/lib/xe/xe_spin.c
> +++ b/lib/xe/xe_spin.c
> @@ -115,6 +115,7 @@ xe_spin_create(int fd, const struct igt_spin_factory
> *opt)
> spin->syncobj = syncobj_create(fd, 0);
> spin->vm = opt->vm;
> spin->engine = opt->engine;
> + spin->timerfd = -1;
>
> if (!spin->vm)
> spin->vm = xe_vm_create(fd, 0, 0);
> @@ -163,6 +164,13 @@ void xe_spin_sync_wait(int fd, struct igt_spin *spin)
> void xe_spin_free(int fd, struct igt_spin *spin) {
> igt_assert(spin->driver == INTEL_DRIVER_XE);
> +
> + if (spin->timerfd >= 0) {
> + pthread_cancel(spin->timer_thread);
> + igt_assert(pthread_join(spin->timer_thread, NULL) == 0);
> + close(spin->timerfd);
> + }
> +
LGTM
Reviewed-by: Sai Gowtham Ch <sai.gowtham.ch at intel.com>
> xe_spin_end(spin->xe_spin);
> xe_spin_sync_wait(fd, spin);
> xe_vm_unbind_sync(fd, spin->vm, 0, spin->address, spin->bo_size);
> --
> 2.34.1
More information about the igt-dev
mailing list