From dd652a2ccd8e5a3aa4ccc79782ed404d1f08d975 Mon Sep 17 00:00:00 2001 From: Ocean Chen Date: Thu, 9 Sep 2021 02:56:32 +0000 Subject: [PATCH] Pixelstats: add more UFS error count paths The UFS resume flow also increase the reset count. It makes the reset count cannot represent the real error count. So we use other count instead of reset count Bug: 199459367 Test: run storage-qa pixel/022 Change-Id: I853bd5da410b78a0f9a76beee2e4745f68ddba59 Merged-In: I853bd5da410b78a0f9a76beee2e4745f68ddba59 Signed-off-by: Ocean Chen --- pixelstats/service.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pixelstats/service.cpp b/pixelstats/service.cpp index 9c59be5b..327daa7f 100644 --- a/pixelstats/service.cpp +++ b/pixelstats/service.cpp @@ -26,6 +26,7 @@ using android::hardware::google::pixel::SysfsCollector; using android::hardware::google::pixel::UeventListener; #define UFSHC_PATH(filename) "/dev/sys/block/bootdevice/" #filename +#define UFS_ERR_PATH(err_type) UFSHC_PATH(err_stats/) #err_type const struct SysfsCollector::SysfsPaths sysfs_paths = { .SlowioReadCntPath = UFSHC_PATH(slowio_read_cnt), .SlowioWriteCntPath = UFSHC_PATH(slowio_write_cnt), @@ -35,7 +36,6 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { .UFSLifetimeA = UFSHC_PATH(health_descriptor/life_time_estimation_a), .UFSLifetimeB = UFSHC_PATH(health_descriptor/life_time_estimation_b), .UFSLifetimeC = UFSHC_PATH(health_descriptor/life_time_estimation_c), - .UFSHostResetPath = UFSHC_PATH(err_stats/dev_reset_count), .F2fsStatsPath = "/sys/fs/f2fs/", .ImpedancePath = "/sys/devices/platform/audiometrics/speaker_impedance", .CodecPath = "/sys/devices/platform/audiometrics/codec_state", @@ -43,7 +43,16 @@ const struct SysfsCollector::SysfsPaths sysfs_paths = { .MitigationPath = "/sys/devices/virtual/pmic/mitigation", .SpeakerTemperaturePath = "/sys/devices/platform/audiometrics/speaker_temp", .SpeakerExcursionPath = "/sys/devices/platform/audiometrics/speaker_excursion", - .SpeakerHeartBeatPath = "/sys/devices/platform/audiometrics/speaker_heartbeat" + .SpeakerHeartBeatPath = "/sys/devices/platform/audiometrics/speaker_heartbeat", + .UFSErrStatsPath = { + UFS_ERR_PATH(pa_err_count), + UFS_ERR_PATH(dl_err_count), + UFS_ERR_PATH(nl_err_count), + UFS_ERR_PATH(tl_err_count), + UFS_ERR_PATH(dme_err_count), + UFS_ERR_PATH(fatal_err_count), + UFS_ERR_PATH(auto_hibern8_err_count) + } }; const struct UeventListener::UeventPaths ueventPaths = {