• Will Deacon's avatar
    ARM: perf: fix group validation for mixed software and hardware groups · 2dfcb802
    Will Deacon authored
    Since software events can always be scheduled, perf allows software and
    hardware events to be mixed together in the same event group. There are
    two ways in which this can come about:
    
      (1) A SW event is added to a HW group. This validates using the HW PMU
          of the group leader.
    
      (2) A HW event is added to a SW group. This inserts the SW events and
          the new HW event into a HW context, but the SW event remains the
          group leader.
    
    When validating the latter case, we would ideally compare the PMU of
    each event in the group with the relevant HW PMU. The problem is, in the
    face of potentially multiple HW PMUs, we don't have a handle on the
    relevant structure. Commit 7b9f72c6 ("ARM: perf: clean up event
    group validation") attempting to resolve this issue, but actually made
    things *worse* by comparing with the leader PMU. If the leader is a SW
    event, then we automatically `pass' all the HW events during validation!
    
    This patch removes the check against the leader PMU. Whilst this will
    allow events from multiple HW PMUs to be grouped together, that should
    probably be dealt with in perf core as the result of a later patch.
    Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    2dfcb802
perf_event.c 15.2 KB