On Tue, Nov 10, 2020 at 12:52:04PM -0800, Stephane Eranian wrote: > What is implemented is Freeze-on-Overflow, yet it is described as Freeze-on-PMI. > That, in itself, is a problem. I agree with you on that point. Exactly. > However, there are use cases for both modes. > > I can sample on event A and count on B, C and when A overflows, I want > to snapshot B, C. > For that I want B, C at the moment of the overflow, not at the moment > the PMI is delivered. Thus, youd > would want the Freeze-on-overflow behavior. You can collect in this > mode with the perf tool, > IIRC: perf record -e '{cycles,instructions,branches:S}' .... Right, but we never supported that. Also, in that case the group must then be fully exlusive so as not to mess with other groups. A better solution might be an extention to Adaptive PEBS. > The other usage model is that of the replay-debugger (rr) which you are alluding > to, which needs precise count of an event including during the skid > window. For that, you need > Freeze-on-PMI (delivered). Note that this tool likely only cares about > user level occurrences of events. Correct, RR only cares about user-only counting. > As for counter independence, I am not sure it holds in all cases. If > the events are setup for user+kernel This is true; however if it were an actual Freeze-on-PMI we could actually do u+k independence correctly too. Anyway, as it stands I think the whole counter_freezing thing is a trainwreck and it needs to go.