metrics: metrics_daemon: avoid division by zero
Don't send ratio samples when the ratio
doesn't exist.
BUG=chromium:692271
TEST=none
Change-Id: I8c37c460b4d0953aa9b1cd0a6c20d6082bb2d05b
Reviewed-on: https://chromium-review.googlesource.com/442628
Commit-Ready: Luigi Semenzato <semenzato@chromium.org>
Tested-by: Luigi Semenzato <semenzato@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
(cherry picked from commit f542bb4a0513a44ec70e9c03847b25ed88171cd3)
Reviewed-on: https://chromium-review.googlesource.com/468530
Reviewed-by: Luigi Semenzato <semenzato@chromium.org>
Commit-Queue: Luigi Semenzato <semenzato@chromium.org>
diff --git a/metrics/metrics_daemon.cc b/metrics/metrics_daemon.cc
index 5eeb6e7..dcf5aff 100644
--- a/metrics/metrics_daemon.cc
+++ b/metrics/metrics_daemon.cc
@@ -865,7 +865,6 @@
const int compr_data_size_mb = compr_data_size >> 20;
const int savings_mb = (orig_data_size - compr_data_size) >> 20;
- const int zero_ratio_percent = zero_pages * page_size * 100 / orig_data_size;
// Report compressed size in megabytes. 100 MB or less has little impact.
SendSample("Platform.ZramCompressedSize", compr_data_size_mb, 100, 4000, 50);
@@ -880,7 +879,11 @@
// The values of interest for zero_pages are between 1MB and 1GB. The units
// are number of pages.
SendSample("Platform.ZramZeroPages", zero_pages, 256, 256 * 1024, 50);
- SendSample("Platform.ZramZeroRatioPercent", zero_ratio_percent, 1, 50, 50);
+ // Send ratio sample only when the ratio exists.
+ if (orig_data_size > 0) {
+ const int zero_percent = zero_pages * page_size * 100 / orig_data_size;
+ SendSample("Platform.ZramZeroRatioPercent", zero_percent, 1, 50, 50);
+ }
return true;
}