[Mesa-dev] [PATCH 1/2] clover: Catch errors from executing event action

Jan Vesely jan.vesely at rutgers.edu
Tue Jul 17 21:37:37 UTC 2018


On Tue, 2018-07-17 at 16:15 -0500, Aaron Watry wrote:
> Question: How'd you run across this? CTS, an application?

It's a part of the 3 patch series I posted:
1.) fail to create compute state if code has relocations
2.) throw exception if pipe driver failed to create compute state
3.) catch exception and fail kernel launch event

this fixes clover to be able to run full piglit run on GCN (since
llvm-6)

I haven't looked into what other things it might fix.

Jan

> 
> I saw this and had hoped that it finally fixed a CTS hang I've been
> experiencing when running:
>   test_conformance/events/test_events test_userevents
> 
> But at least when SSH'd into my R600-based box, it still seems to
> pause waiting for an event to trigger:
> 
> test_userevents...
> Enqueuing tasks
> Checking task status before setting user event status
> Setting user event status to complete
> Waiting for tasks to finish executing
> Checking task status after setting user event status
> Successful user event case passed.
> Enqueuing tasks
> Checking task status before setting user event status
> Setting user event status to unsuccessful result
> Waiting for tasks to finish executing
> Checking task status after setting user event status
> Unsuccessful user event case passed.
> test_userevents passed
> HUNG HERE
> 
> --Aaron
> 
> On Tue, Jul 17, 2018 at 9:38 AM, Jan Vesely <jan.vesely at rutgers.edu> wrote:
> > Abort all dependent events.
> > Signed-off-by: Jan Vesely <jan.vesely at rutgers.edu>
> > ---
> >  src/gallium/state_trackers/clover/core/event.cpp | 7 ++++++-
> >  1 file changed, 6 insertions(+), 1 deletion(-)
> > 
> > diff --git a/src/gallium/state_trackers/clover/core/event.cpp b/src/gallium/state_trackers/clover/core/event.cpp
> > index cd5d786604..ed2b6ebdb8 100644
> > --- a/src/gallium/state_trackers/clover/core/event.cpp
> > +++ b/src/gallium/state_trackers/clover/core/event.cpp
> > @@ -51,7 +51,12 @@ event::trigger_self() {
> >  void
> >  event::trigger() {
> >     if (wait_count() == 1)
> > -      action_ok(*this);
> > +      try {
> > +         action_ok(*this);
> > +      } catch (error &e) {
> > +         for (event &ev : abort_self(e.get()))
> > +            ev.abort(e.get());
> > +      }
> > 
> >     for (event &ev : trigger_self())
> >        ev.trigger();
> > --
> > 2.16.4
> > 
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev

-- 
Jan Vesely <jan.vesely at rutgers.edu>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180717/5d7212db/attachment.sig>


More information about the mesa-dev mailing list