diff options
| author | 2019-01-22 07:58:44 +0000 | |
|---|---|---|
| committer | 2019-01-22 07:58:44 +0000 | |
| commit | 3dc172438a3b45160f3c95eb202ea39c1ba2b348 (patch) | |
| tree | 908b4944a0e9046f564a6b799105dddeaab11b7f | |
| parent | 8bddc8fc4e250607300db3b31af6746fcf4ad3d6 (diff) | |
| parent | fc1aa59dff2e9a5b9951a3c9a4de2b9782725dd6 (diff) | |
Merge "statsd implementation of USB port overheat event reporting"
| -rw-r--r-- | cmds/statsd/src/StatsService.cpp | 8 | ||||
| -rw-r--r-- | cmds/statsd/src/StatsService.h | 6 | ||||
| -rw-r--r-- | cmds/statsd/src/atoms.proto | 19 | ||||
| -rw-r--r-- | cmds/statsd/src/logd/LogEvent.cpp | 18 | ||||
| -rw-r--r-- | cmds/statsd/src/logd/LogEvent.h | 3 |
5 files changed, 54 insertions, 0 deletions
diff --git a/cmds/statsd/src/StatsService.cpp b/cmds/statsd/src/StatsService.cpp index 3107b4dd7fce..820da556eaaa 100644 --- a/cmds/statsd/src/StatsService.cpp +++ b/cmds/statsd/src/StatsService.cpp @@ -1089,6 +1089,14 @@ hardware::Return<void> StatsService::reportBatteryCausedShutdown( return hardware::Void(); } +hardware::Return<void> StatsService::reportUsbPortOverheatEvent( + const UsbPortOverheatEvent& usbPortOverheatEvent) { + LogEvent event(getWallClockSec() * NS_PER_SEC, getElapsedRealtimeNs(), usbPortOverheatEvent); + mProcessor->OnLogEvent(&event); + + return hardware::Void(); +} + void StatsService::binderDied(const wp <IBinder>& who) { ALOGW("statscompanion service died"); StatsdStats::getInstance().noteSystemServerRestart(getWallClockSec()); diff --git a/cmds/statsd/src/StatsService.h b/cmds/statsd/src/StatsService.h index 135a3c9cde51..e9b3d4f2f4db 100644 --- a/cmds/statsd/src/StatsService.h +++ b/cmds/statsd/src/StatsService.h @@ -199,6 +199,12 @@ public: virtual Return<void> reportBatteryCausedShutdown( const BatteryCausedShutdown& batteryCausedShutdown) override; + /** + * Binder call to get UsbPortOverheatEvent atom. + */ + virtual Return<void> reportUsbPortOverheatEvent( + const UsbPortOverheatEvent& usbPortOverheatEvent) override; + /** IBinder::DeathRecipient */ virtual void binderDied(const wp<IBinder>& who) override; diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto index 33320e7a3936..f8825ac94b65 100644 --- a/cmds/statsd/src/atoms.proto +++ b/cmds/statsd/src/atoms.proto @@ -193,6 +193,7 @@ message Atom { LowStorageStateChanged low_storage_state_changed = 130; GnssNfwNotificationReported gnss_nfw_notification_reported = 131; GnssConfigurationReported gnss_configuration_reported = 132; + UsbPortOverheatEvent usb_port_overheat_event_reported = 133; } // Pulled events will start at field 10000. @@ -2495,6 +2496,24 @@ message BinaryPushStateChanged { optional State state = 3; } +/** Represents USB port overheat event. */ +message UsbPortOverheatEvent { + /* Temperature of USB port at USB plug event, in 1/10ths of degree C. */ + optional int32 plug_temperature_deci_c = 1; + + /* Maximum temperature of USB port during overheat event, in 1/10ths of degree C. */ + optional int32 max_temperature_deci_c = 2; + + /* Time between USB plug event and overheat threshold trip, in seconds. */ + optional int32 time_to_overheat_secs = 3; + + /* Time between overheat threshold trip and hysteresis, in seconds. */ + optional int32 time_to_hysteresis_secs = 4; + + /* Time between hysteresis and active mitigation ending, in seconds. */ + optional int32 time_to_inactive_secs = 5; +}; + /* * Logs when a connection becomes available and lost. * Logged in StatsCompanionService.java diff --git a/cmds/statsd/src/logd/LogEvent.cpp b/cmds/statsd/src/logd/LogEvent.cpp index 2ff8aa1793ec..78a75c5ffaf0 100644 --- a/cmds/statsd/src/logd/LogEvent.cpp +++ b/cmds/statsd/src/logd/LogEvent.cpp @@ -276,6 +276,24 @@ LogEvent::LogEvent(int64_t wallClockTimestampNs, int64_t elapsedTimestampNs, Value(batteryCausedShutdown.voltageMicroV))); } +LogEvent::LogEvent(int64_t wallClockTimestampNs, int64_t elapsedTimestampNs, + const UsbPortOverheatEvent& usbPortOverheatEvent) { + mLogdTimestampNs = wallClockTimestampNs; + mElapsedTimestampNs = elapsedTimestampNs; + mTagId = android::util::USB_PORT_OVERHEAT_EVENT_REPORTED; + + mValues.push_back(FieldValue(Field(mTagId, getSimpleField(1)), + Value(usbPortOverheatEvent.plugTemperatureDeciC))); + mValues.push_back(FieldValue(Field(mTagId, getSimpleField(2)), + Value(usbPortOverheatEvent.maxTemperatureDeciC))); + mValues.push_back(FieldValue(Field(mTagId, getSimpleField(3)), + Value(usbPortOverheatEvent.timeToOverheat))); + mValues.push_back(FieldValue(Field(mTagId, getSimpleField(4)), + Value(usbPortOverheatEvent.timeToHysteresis))); + mValues.push_back(FieldValue(Field(mTagId, getSimpleField(5)), + Value(usbPortOverheatEvent.timeToInactive))); +} + LogEvent::LogEvent(int32_t tagId, int64_t timestampNs) : LogEvent(tagId, timestampNs, 0) {} LogEvent::LogEvent(int32_t tagId, int64_t timestampNs, int32_t uid) { diff --git a/cmds/statsd/src/logd/LogEvent.h b/cmds/statsd/src/logd/LogEvent.h index 43e6e4f72da9..3f47b7efdfb5 100644 --- a/cmds/statsd/src/logd/LogEvent.h +++ b/cmds/statsd/src/logd/LogEvent.h @@ -118,6 +118,9 @@ public: explicit LogEvent(int64_t wallClockTimestampNs, int64_t elapsedTimestampNs, const BatteryCausedShutdown& batteryCausedShutdown); + explicit LogEvent(int64_t wallClockTimestampNs, int64_t elapsedTimestampNs, + const UsbPortOverheatEvent& usbPortOverheatEvent); + ~LogEvent(); /** |