From d2450862f4e97de26dd350de7ec1d6ebbdb15224 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Tue, 7 Feb 2017 15:58:24 -0800 Subject: [PATCH] Logging and partial fix for BatteryStats lock contention Don't try to grab the write lock while holding BatteryStats lock. Add some debugging to see if cpu stats gathering is causing a delay in some cases. Bug: 34961340 Test: Manual Change-Id: I8c7d1abb239abd81a07171cd65be1fbfdbca5fdb --- core/java/com/android/internal/os/BatteryStatsImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index 63622f15e4c1e..9dca5ea6eaa6f 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -9562,7 +9562,8 @@ public class BatteryStatsImpl extends BatteryStats { } }); - if (DEBUG_ENERGY_CPU) { + // TODO: STOPSHIP, remove the "true" below after b/34961340 is fixed + if (DEBUG_ENERGY_CPU || true) { Slog.d(TAG, "Reading cpu stats took " + (mClocks.elapsedRealtime() - startTimeMs) + " ms"); } @@ -10390,10 +10391,9 @@ public class BatteryStatsImpl extends BatteryStats { if (next == null) { return; } - - mWriteLock.lock(); } + mWriteLock.lock(); try { FileOutputStream stream = new FileOutputStream(mFile.chooseForWrite()); stream.write(next.marshall());