Skip to content
  • Suzuki K. Poulose's avatar
    drivers: cci: reject groups spanning multiple HW PMUs · b1862199
    Suzuki K. Poulose authored
    
    
    The perf core implicitly rejects events spanning multiple HW PMUs, as in
    these cases the event->ctx will differ. However this validation is
    performed after pmu::event_init() is called in perf_init_event(), and
    thus pmu::event_init() may be called with a group leader from a
    different HW PMU.
    
    The CCI PMU driver does not take this fact into account, and assumes
    that the any other hardware event belongs to the CCI. There are two
    issues with it :
    
    1) It is wrong and we should reject such groups.
    2) Validation allocates an temporary idx for this non-cci event, which leads
    to wrong calculation of the counter availability, and eventually lesser
    number of events in the group.
    
    This patch updates the CCI PMU driver to first test for and reject
    events from other PMUs, which is the right thing to do.
    
    Cc: Will Deacon <will.deacon@arm.com>
    Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
    Acked-by: default avatarPeter Ziljstra (Intel) <peterz@infradead.org>
    Signed-off-by: default avatarSuzuki K. Poulose <suzuki.poulose@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    b1862199