From 0312c36cc73a3a6fd858a29884963b0874afdbb7 Mon Sep 17 00:00:00 2001 From: Dmitri Plotnikov Date: Tue, 24 Aug 2021 14:10:59 -0700 Subject: [PATCH] Prevent zero-division in the absence of measured system server drain Bug: 197237752 Test: atest CtsDumpsysHostTestCases:android.dumpsys.cts.BatteryStatsDumpsysTest#testBatterystatsOutput -- --abi arm64-v8a Change-Id: I18a1b563a066bcabe686a12fd9c93d3838ed0d10 --- .../android/internal/os/SystemServicePowerCalculator.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/java/com/android/internal/os/SystemServicePowerCalculator.java b/core/java/com/android/internal/os/SystemServicePowerCalculator.java index b4a2b637cae82..c527c06981ad2 100644 --- a/core/java/com/android/internal/os/SystemServicePowerCalculator.java +++ b/core/java/com/android/internal/os/SystemServicePowerCalculator.java @@ -175,8 +175,11 @@ public class SystemServicePowerCalculator extends PowerCalculator { final double systemUidModeledPowerMah = mCpuPowerCalculator.calculateUidModeledPowerMah( systemUid, BatteryStats.STATS_SINCE_CHARGED); - return uCtoMah(consumptionUC) * systemServiceModeledPowerMah - / systemUidModeledPowerMah; + if (systemUidModeledPowerMah > 0) { + return uCtoMah(consumptionUC) * systemServiceModeledPowerMah / systemUidModeledPowerMah; + } else { + return 0; + } } private double calculatePowerUsingPowerProfile(BatteryStats batteryStats) {