> I misunderstood the "UTRACE_INTERRUPT without UTRACE_EVENT(QUIESCE)" above
> as if you mean it is possible to get UTRACE_SIGNAL_REPORT without QUIESCE.

No, I meant the opposite: since you won't get UTRACE_SIGNAL_REPORT without
UTRACE_EVENT(QUIESCE), it might seem that UTRACE_INTERRUPT should not be
permitted, as UTRACE_REPORT is not.  But because that is not it's *only*
effect, we don't do permit it even though you won't get UTRACE_SIGNAL_REPORT.

> OK. This means ugdb should set QUIESCE, just to ensure its ->report_signal()
> will be called.

If you ever want UTRACE_SIGNAL_REPORT calls, yes.

> OK, please forget. I must admit, this still looks a bit, well, unnatural
> to me. May be it makes sense to add
> 
>       _UTRACE_EVENT_SIGNAL_REPORT,
>       _UTRACE_EVENT_SIGNAL_HANDLER,
> 
> into utrace_events. Then ugdb could ask for UTRACE_SIGNAL_REPORT and
> avoid the unnecessary ->report_quiesce() calls.

If anything, I think UTRACE_EVENT(RESUME) would make sense, perhaps with a
separate ->report_resume callback.  That would request only the cases that
now get report_quiesce(0).  But, it really does not cost much to have 

        if (event) return UTRACE_RESUME;

or similar in your report_quiesce callback.  It's beyond refinement of the
utrace API (that we're not doing now), it's just micro-optimization.

> Roland, could you also comment this patch?
> 
>       https://www.redhat.com/archives/utrace-devel/2010-August/msg00108.html
> 
> Again, this looks like a bug to me, but I won't insist if it is not.

Sorry, that is still on my queue.  I haven't forgotten it.  
I just haven't gotten to reviewing it yet because of other
work and it needing a lot of hard thinking.


Thanks,
Roland

Reply via email to