Skip to content

Commit e49ecdf

Browse files
rmurphy-armwilldeacon
authored andcommitted
perf/arm-cmn: Permit more exhaustive groups
The group validation logic still somewhat assumes the original CMN-600 case of events counting globally, such that if one tries to group 9 events where the first 8 target a single DTC domain, the 9th will be rejected because *a* DTC domain is full, even though it might only target other non-overlapping domains and thus still be schedulable. Improve matters by only counting the DTCs that the new event actually needs (as arm_cmn_val_add_event() was already clever enough to do). Signed-off-by: Robin Murphy <robin.murphy@arm.com> Reviewed-and-tested-by: Ilkka Koskinen <ilkka@os.amperecomputing.com> Link: https://lore.kernel.org/r/bdfd1e58dac449e407c5cacfd6bf8577dc0a5899.1733943898.git.robin.murphy@arm.com Signed-off-by: Will Deacon <will@kernel.org>
1 parent b34d605 commit e49ecdf

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

drivers/perf/arm-cmn.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1713,8 +1713,8 @@ static int arm_cmn_validate_group(struct arm_cmn *cmn, struct perf_event *event)
17131713
goto done;
17141714
}
17151715

1716-
for (i = 0; i < CMN_MAX_DTCS; i++)
1717-
if (val->dtc_count[i] == CMN_DT_NUM_COUNTERS)
1716+
for_each_hw_dtc_idx(hw, dtc, idx)
1717+
if (val->dtc_count[dtc] == CMN_DT_NUM_COUNTERS)
17181718
goto done;
17191719

17201720
for_each_hw_dn(hw, dn, i) {

0 commit comments

Comments
 (0)