Change default cpu event counter events
Bug: 370087566
Test: RectListBenchmark
Also override value in androidx to specifically investigate crosstalk
2 events was a conservative default to support emulators, which we no
longer attempt to support.
Overriding default to be L1DMisses and BranchMisses in AndroidX to
investigate sources of run-to-run noise in CI.
Change-Id: Ic62413376a7ce7fdd7f1dbbdc742dd416c9ab442
diff --git a/benchmark/benchmark-common/src/main/java/androidx/benchmark/Arguments.kt b/benchmark/benchmark-common/src/main/java/androidx/benchmark/Arguments.kt
index 1fef4e4..da07fef 100644
--- a/benchmark/benchmark-common/src/main/java/androidx/benchmark/Arguments.kt
+++ b/benchmark/benchmark-common/src/main/java/androidx/benchmark/Arguments.kt
@@ -292,7 +292,10 @@
cpuEventCounterMask =
if (cpuEventCounterEnable) {
arguments
- .getBenchmarkArgument("cpuEventCounter.events", "Instructions,CpuCycles")
+ .getBenchmarkArgument(
+ "cpuEventCounter.events",
+ "Instructions,CpuCycles,BranchMisses"
+ )
.split(",")
.map { eventName -> CpuEventCounter.Event.valueOf(eventName) }
.getFlags()
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/BenchmarkConfiguration.kt b/buildSrc/private/src/main/kotlin/androidx/build/BenchmarkConfiguration.kt
index 98738fb..0909005 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/BenchmarkConfiguration.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/BenchmarkConfiguration.kt
@@ -36,6 +36,13 @@
"true"
)
+ // Set default events to aid in CI investigations of run to run noise
+ // Avoid using more than three, or capture may fail reporting all zeros, see b/291826415
+ deviceTest.instrumentationRunnerArguments.put(
+ "androidx.benchmark.cpuEventCounter.events",
+ "Instructions,L1DMisses,BranchMisses"
+ )
+
// Force AndroidX devs to disable JIT on rooted devices
deviceTest.instrumentationRunnerArguments.put(
"androidx.benchmark.requireJitDisabledIfRooted",