arch-arm: Only increment SW PMU counters on writes to PMSWINC
When writing a bitmask of counters to PMSWINC, the PMU currently increments the corresponding counters regardless of what they are configured to count. According to the ARM ARM (D5.10.4), counters should only be updated if they have been configured to count software events (event type 0). Change-Id: I5b2bc1fae55faa342b863721c9838342442831a9 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/4285 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
This commit is contained in:
committed by
Andreas Sandberg
parent
653d2ee29a
commit
b277ad3bdb
@@ -147,8 +147,10 @@ PMU::setMiscReg(int misc_reg, MiscReg val)
|
||||
case MISCREG_PMSWINC:
|
||||
for (int i = 0; i < counters.size(); ++i) {
|
||||
CounterState &ctr(getCounter(i));
|
||||
if (ctr.enabled && (val & (1 << i)))
|
||||
if (ctr.enabled && (val & (1 << i))
|
||||
&& ctr.eventId == ARCH_EVENT_SW_INCR ) {
|
||||
++ctr.value;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user