pixelstats: upload F2fsSmartIdleMaintEnabledStateChanged
Upload the value of F2FS smart idle maintenance feature enabled
bug: 215443809
Change-Id: I01cde9e07b9103ea6b5981de2cdb1fd67f503caa
Signed-off-by: Ocean Chen <oceanchen@google.com>
diff --git a/pixelstats/SysfsCollector.cpp b/pixelstats/SysfsCollector.cpp
index 14cba98..a2ead23 100644
--- a/pixelstats/SysfsCollector.cpp
+++ b/pixelstats/SysfsCollector.cpp
@@ -47,6 +47,7 @@
using android::hardware::google::pixel::PixelAtoms::F2fsCompressionInfo;
using android::hardware::google::pixel::PixelAtoms::F2fsGcSegmentInfo;
using android::hardware::google::pixel::PixelAtoms::F2fsStatsInfo;
+using android::hardware::google::pixel::PixelAtoms::F2fsSmartIdleMaintEnabledStateChanged;
using android::hardware::google::pixel::PixelAtoms::StorageUfsHealth;
using android::hardware::google::pixel::PixelAtoms::StorageUfsResetCount;
using android::hardware::google::pixel::PixelAtoms::VendorChargeCycles;
@@ -721,6 +722,26 @@
}
}
+void SysfsCollector::logF2fsSmartIdleMaintEnabled(const std::shared_ptr<IStats> &stats_client) {
+ bool smart_idle_enabled = android::base::GetBoolProperty(
+ "persist.device_config.storage_native_boot.smart_idle_maint_enabled", false);
+
+ // Load values array
+ VendorAtomValue tmp;
+ std::vector<VendorAtomValue> values(1);
+ tmp.set<VendorAtomValue::intValue>(smart_idle_enabled);
+ values[F2fsSmartIdleMaintEnabledStateChanged::kEnabledFieldNumber - kVendorAtomOffset] = tmp;
+
+ // Send vendor atom to IStats HAL
+ VendorAtom event = {.reverseDomainName = PixelAtoms::ReverseDomainNames().pixel(),
+ .atomId = PixelAtoms::Atom::kF2FsSmartIdleMaintEnabledStateChanged,
+ .values = std::move(values)};
+ const ndk::ScopedAStatus ret = stats_client->reportVendorAtom(event);
+ if (!ret.isOk()) {
+ ALOGE("Unable to report Boot stats to Stats service");
+ }
+}
+
void SysfsCollector::reportZramMmStat(const std::shared_ptr<IStats> &stats_client) {
std::string file_contents;
if (!kZramMmStatPath) {
@@ -897,6 +918,7 @@
logF2fsStats(stats_client);
logF2fsCompressionInfo(stats_client);
logF2fsGcSegmentInfo(stats_client);
+ logF2fsSmartIdleMaintEnabled(stats_client);
logSlowIO(stats_client);
logSpeakerImpedance(stats_client);
logSpeechDspStat(stats_client);
diff --git a/pixelstats/include/pixelstats/SysfsCollector.h b/pixelstats/include/pixelstats/SysfsCollector.h
index 2baa53c..51c8440 100644
--- a/pixelstats/include/pixelstats/SysfsCollector.h
+++ b/pixelstats/include/pixelstats/SysfsCollector.h
@@ -88,6 +88,7 @@
void logBootStats(const std::shared_ptr<IStats> &stats_client);
void logBatteryEEPROM(const std::shared_ptr<IStats> &stats_client);
void logSpeakerHealthStats(const std::shared_ptr<IStats> &stats_client);
+ void logF2fsSmartIdleMaintEnabled(const std::shared_ptr<IStats> &stats_client);
void reportSlowIoFromFile(const std::shared_ptr<IStats> &stats_client, const char *path,
const VendorSlowIo::IoOperation &operation_s);
diff --git a/pixelstats/pixelatoms.proto b/pixelstats/pixelatoms.proto
index 9ffb708..1a61f3e 100644
--- a/pixelstats/pixelatoms.proto
+++ b/pixelstats/pixelatoms.proto
@@ -79,6 +79,7 @@
BatteryHealthStatus battery_health_status = 105037;
BatteryHealthUsage battery_health_usage = 105038;
+ F2fsSmartIdleMaintEnabledStateChanged f2fs_smart_idle_maint_enabled_state_changed = 105039;
}
// AOSP atom ID range ends at 109999
}
@@ -1096,3 +1097,12 @@
// Time (s) accumulated only during discharge at the given thresholds.
optional int32 discharge_time_secs = 5;
}
+
+/*
+ * A Value of F2FS smart idle maintenance feature enabled
+ */
+message F2fsSmartIdleMaintEnabledStateChanged {
+ optional string reverse_domain_name = 1;
+ /* Smart idle maint is enabled */
+ optional bool enabled = 2;
+}