[Mesa-dev] [PATCH v2] clover: Reduce wait_count in abort path.

Aaron Watry awatry at gmail.com
Wed Jul 25 17:09:21 UTC 2018


I can confirm that all 28 CTS 'events' tests pass now on my BARTS
(6850) instead of hanging after an intentionally failing event.

I'll let Francisco give his say to whether it looks correct, but for
this version you can have:

Tested-By: Aaron Watry <awatry at gmail.com>

--Aaron



On Tue, Jul 24, 2018 at 10:28 PM, Jan Vesely <jan.vesely at rutgers.edu> wrote:
> Trigger waiter condition variable.
> Passes 'events' CTS on carrizo and turks.
> v2: reduce to 0
>
> Signed-off-by: Jan Vesely <jan.vesely at rutgers.edu>
> ---
>  src/gallium/state_trackers/clover/core/event.cpp | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/src/gallium/state_trackers/clover/core/event.cpp b/src/gallium/state_trackers/clover/core/event.cpp
> index b7eb33dbfc..3d313ce896 100644
> --- a/src/gallium/state_trackers/clover/core/event.cpp
> +++ b/src/gallium/state_trackers/clover/core/event.cpp
> @@ -41,7 +41,7 @@ event::trigger_self() {
>     std::lock_guard<std::mutex> lock(mutex);
>     std::vector<intrusive_ref<event>> evs;
>
> -   if (!--_wait_count)
> +   if (_wait_count && !--_wait_count)
>        std::swap(_chain, evs);
>
>     cv.notify_all();
> @@ -65,8 +65,10 @@ event::abort_self(cl_int status) {
>     std::vector<intrusive_ref<event>> evs;
>
>     _status = status;
> +   _wait_count = 0;
>     std::swap(_chain, evs);
>
> +   cv.notify_all();
>     return evs;
>  }
>
> --
> 2.17.1
>


More information about the mesa-dev mailing list