On Fri, Jul 24, 2020 at 09:43:44AM -0400, Liang, Kan wrote: > > > On 7/24/2020 7:46 AM, pet...@infradead.org wrote: > > On Fri, Jul 24, 2020 at 12:55:43PM +0200, pet...@infradead.org wrote: > > > > + event_sched_out(event, cpuctx, ctx); > > > > + perf_event_set_state(event, PERF_EVENT_STATE_ERROR); > > > > +} > > > > > > Ah, so the problem here is that ERROR is actually recoverable using > > > IOC_ENABLE. We don't want that either. Let me try and figure out of EXIT > > > would work. > > > > EXIT is difficult too.. Also, that COEXIST thing hurt my brian, can't we > > do a simpler SIBLING thing that simply requires the event to be a group > > sibling? > > > > The consequence is that SLOTS must be the leader, is that really a > > problem? You keep providing the {cycles, slots, metric-things} example, > > but afaict {slots, metric-thing, cycles} should work just fine too. > > PERF_SAMPLE_READ with PERF_FORMAT_GROUP doesn't need to the the leader. > > I'm not sure I get your point. > For the PERF_SAMPLE_READ with PERF_FORMAT_GROUP case, other events can be > the leader, e.g., {cycles, slots, metric-things}:S. > In this case, the SLOTS event is not a leader. I don't think we can assume > that the SLOTS event must be the leader.
You can have a sibling event with SAMPLE_READ and FORMAT_GROUP just fine. The sampling event doesn't need to be the leader.