On 09/03, Roland McGrath wrote: > > > > So, it is technically kosher enough to use UTRACE_INTERRUPT without > > > UTRACE_EVENT(QUIESCE) set, if you really know the situation and are sure > > > about all those caveats above. > > > > How? see below. > > I mentioned the examples.
I misunderstood the "UTRACE_INTERRUPT without UTRACE_EVENT(QUIESCE)" above as if you mean it is possible to get UTRACE_SIGNAL_REPORT without QUIESCE. > > > But, it's only UTRACE_EVENT(QUIESCE) that > > > gives you any expectation of an "extra" callback for "no event" from > > > either > > > UTRACE_REPORT or UTRACE_INTERRUPT. > > > > Yes, this is clear too. > > Apparently not. ;-) Perhaps ;) At least I certainly missed your point. > QUIESCE is the only event type for "no event". If you only asked for > signal events, then you only get a callback when there is an actual signal > event. If you want an extra callback before dequeuing any signal, then > that is what QUIESCE is for. OK. This means ugdb should set QUIESCE, just to ensure its ->report_signal() will be called. > > Once again, I am not asking to change utrace now, but could you explain > > what is wrong with the patch below? > > That gives an extra unrequested report_signal callback to every engine that > is only interested in some signal event. Consider a "crash-catcher" > engine. It would only track UTRACE_EVENT(SIGNAL_CORE) (and perhaps CLONE > for its bookkeeping). This engine never asked for a callback before each > and every attempt to dequeue any signal, I see your point (I hope). > which is what you would give it > with your change. No ;) My change was wrong. event == 0 in this case, and then later utrace_get_signal() checks if ((want & (event | UTRACE_EVENT(QUIESCE))) == 0) continue; 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. But at least I can see the logic now, thanks. 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. Oleg.