| /* |
| * Copyright (C) 2018 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| syntax = "proto2"; |
| |
| // C++ namespace: android::hardware::google::pixel::PixelAtoms |
| package android.hardware.google.pixel.PixelAtoms; |
| |
| option optimize_for = LITE_RUNTIME; |
| |
| option java_package = "android.hardware.google.pixel"; |
| option java_outer_classname = "PixelAtoms"; |
| |
| import "frameworks/proto_logging/stats/atom_field_options.proto"; |
| |
| /* |
| * Please note that the following features are not currently supported by |
| * the IStats->reportVendorAtom implementation: |
| * - types outside of int, long, float, and string (ex. uint) |
| * - submessages within an atom |
| * - repeated fields - arrays must be unrolled |
| * - field # 1 - this will be occupied by the vendor namespace |
| */ |
| |
| /* Allocated atom IDs. */ |
| message Atom { |
| oneof pushed { |
| // AOSP atom ID range starts at 105000 |
| ChargeStats charge_stats = 105000; |
| VoltageTierStats voltage_tier_stats = 105001; |
| BatteryCapacity battery_capacity = 105002; |
| StorageUfsHealth storage_ufs_health = 105003; |
| F2fsStatsInfo f2fs_stats = 105004; |
| ZramMmStat zram_mm_stat = 105005; |
| ZramBdStat zram_bd_stat = 105006; |
| BootStatsInfo boot_stats = 105007; |
| // 105008 - 105009 is available. |
| BatteryCapacityFG fg_capacity = 105010; |
| PdVidPid pd_vid_pid = 105011; |
| BatteryEEPROM battery_eeprom = 105012; |
| VendorSpeakerImpedance vendor_speaker_impedance = 105013; // moved from atoms.proto |
| StorageUfsResetCount ufs_reset_count = 105014; |
| PixelMmMetricsPerHour pixel_mm_metrics_per_hour = 105015; |
| PixelMmMetricsPerDay pixel_mm_metrics_per_day = 105016; |
| F2fsCompressionInfo f2fs_compression_info = 105017; |
| VendorChargeCycles vendor_charge_cycles = 105018; // moved from atoms.proto |
| VendorHardwareFailed vendor_hardware_failed = 105019; // moved from atoms.proto |
| VendorSlowIo vendor_slow_io = 105020; // moved from atoms.proto |
| VendorSpeechDspStat vendor_speech_dsp_stat = 105021; // moved from atoms.proto |
| VendorPhysicalDropDetected vendor_physical_drop_detected = 105022; // moved from atoms.proto |
| VendorUsbPortOverheat vendor_usb_port_overheat = 105023; // moved from atoms.proto |
| CmaStatus cma_status = 105024; |
| CmaStatusExt cma_status_ext = 105025; |
| VendorBatteryHealthSnapshot vendor_battery_health_snapshot = |
| 105026 [(android.os.statsd.module) = "pixelhealth"]; // moved from atoms.proto |
| VendorBatteryCausedShutdown vendor_battery_caused_shutdown = |
| 105027 [(android.os.statsd.module) = "pixelhealth"]; // moved from atoms.proto |
| F2fsGcSegmentInfo f2fs_gc_segment_info = 105028; |
| PowerMitigationStats mitigation_stats = 105029; // moved from atoms.proto |
| |
| CitadelVersion citadel_version = 100018; // moved from vendor proprietary |
| CitadelEvent citadel_event = 100019; // moved from vendor proprietary |
| VendorSpeakerStatsReported vendor_speaker_stats_reported = 105030; |
| |
| ChreHalNanoappLoadFailed chre_hal_nanoapp_load_failed = 105031; |
| ChrePalOpenFailed chre_pal_open_failed = 105032; |
| ChreApiErrorCodeDistributionTaken chre_api_error_code_distribution_taken = 105033; |
| ChreDynamicMemorySnapshotReported chre_dynamic_memory_snapshot_reported = 105034; |
| ChreEventQueueSnapshotReported chre_event_queue_snapshot_reported = 105035; |
| ChreApWakeUpOccurred chre_ap_wake_up_occurred = 105036; |
| |
| BatteryHealthStatus battery_health_status = 105037; |
| BatteryHealthUsage battery_health_usage = 105038; |
| F2fsSmartIdleMaintEnabledStateChanged f2fs_smart_idle_maint_enabled_state_changed = 105039; |
| BlockStatsReported block_stats_reported = 105040; |
| VendorAudioHardwareStatsReported vendor_audio_hardware_stats_reported = 105041; |
| |
| ThermalDfsStats thermal_dfs_stats = 105042; |
| } |
| // AOSP atom ID range ends at 109999 |
| } |
| |
| /* Supported reverse domain names. */ |
| message ReverseDomainNames { |
| optional string pixel = 1 [default = "com.google.pixel"]; |
| } |
| |
| /* A message containing detailed statistics and debug information about a charge session. */ |
| message ChargeStats { |
| /* Charge Adapter stats. */ |
| enum AdapterType { |
| ADAPTER_TYPE_UNKNOWN = 0; |
| ADAPTER_TYPE_USB = 1; |
| ADAPTER_TYPE_USB_SDP = 2; |
| ADAPTER_TYPE_USB_DCP = 3; |
| ADAPTER_TYPE_USB_CDP = 4; |
| ADAPTER_TYPE_USB_ACA = 5; |
| ADAPTER_TYPE_USB_C = 6; |
| ADAPTER_TYPE_USB_PD = 7; |
| ADAPTER_TYPE_USB_PD_DRP = 8; |
| ADAPTER_TYPE_USB_PD_PPS = 9; |
| ADAPTER_TYPE_USB_PD_BRICKID = 10; |
| ADAPTER_TYPE_HVDCP = 11; |
| ADAPTER_TYPE_HVDCP3 = 12; |
| ADAPTER_TYPE_FLOAT = 13; |
| ADAPTER_TYPE_WLC = 14; |
| ADAPTER_TYPE_WLC_EPP = 15; |
| ADAPTER_TYPE_WLC_SPP = 16; |
| ADAPTER_TYPE_GPP = 17; |
| ADAPTER_TYPE_10W = 18; |
| ADAPTER_TYPE_L7 = 19; |
| ADAPTER_TYPE_DL = 20; |
| ADAPTER_TYPE_WPC_EPP = 21; |
| ADAPTER_TYPE_WPC_GPP = 22; |
| ADAPTER_TYPE_WPC_10W = 23; |
| ADAPTER_TYPE_WPC_BPP = 24; |
| ADAPTER_TYPE_WPC_L7 = 25; |
| ADAPTER_TYPE_EXT = 26; |
| ADAPTER_TYPE_EXT1 = 27; |
| ADAPTER_TYPE_EXT2 = 28; |
| ADAPTER_TYPE_EXT_UNKNOWN = 29; |
| } |
| optional string reverse_domain_name = 1; |
| /* Type of charge adapter, enumerated above. */ |
| optional AdapterType adapter_type = 2; |
| /* Max negotiated voltage by charge adapter, in mV. */ |
| optional int32 adapter_voltage = 3; |
| /* Max negotiated current by charge adapter current, in mA. */ |
| optional int32 adapter_amperage = 4; |
| |
| /* Stats at beginning of charge session. */ |
| /* System State of Charge, in percent. */ |
| optional int32 ssoc_in = 5; |
| /* Voltage in mV. */ |
| optional int32 voltage_in = 6; |
| |
| /* Stats at end of charge session. */ |
| /* System State of Charge, in percent. */ |
| optional int32 ssoc_out = 7; |
| /* Voltage in mV. */ |
| optional int32 voltage_out = 8; |
| |
| /** |
| * These values are meant to represent status of the charging device, used |
| * to validate the charging algorithm and explain charging performances. |
| * Examples of the content of the register: |
| * - APDO, PDO (power capabilities of the device, eg. 5V3A, 9V2A, 20V2A) for wired charging |
| * - Wireless charging MFG code. This is the value of a register of the WLC integrated |
| * circuit to identify the vendor and type of WLC pad |
| * - Receiver operating frequency |
| * - Register status |
| */ |
| optional int32 adapter_capabilities0 = 9; |
| optional int32 adapter_capabilities1 = 10; |
| optional int32 adapter_capabilities2 = 11; |
| optional int32 adapter_capabilities3 = 12; |
| optional int32 adapter_capabilities4 = 13; |
| |
| /** |
| * These are values which reports the state of the wireless receiver, which will help in |
| * debugging charging issues and alternate configurations. |
| */ |
| optional int32 receiver_state0 = 14; |
| optional int32 receiver_state1 = 15; |
| |
| /* AACR feature to record capacity */ |
| optional int32 charge_capacity = 16; |
| } |
| |
| /* A message containing stats from each charge voltage tier. */ |
| message VoltageTierStats { |
| optional string reverse_domain_name = 1; |
| /* Voltage tier number, custom to implementation, should be <= 3. */ |
| optional int32 voltage_tier = 2; |
| |
| /* Stats when entering voltage tier. */ |
| /* State of charge, in percent. */ |
| optional float soc_in = 3; |
| /* Coulomb count, in mAh. */ |
| optional int32 cc_in = 4; |
| /* Battery temperature, in deciC. */ |
| optional int32 temp_in = 5; |
| |
| /* Time spent at various charge speeds, in seconds. */ |
| optional int32 time_fast_secs = 6; |
| optional int32 time_taper_secs = 7; |
| optional int32 time_other_secs = 8; |
| |
| /* Battery temperature stats, in deciC. */ |
| optional int32 temp_min = 9; |
| optional int32 temp_avg = 10; |
| optional int32 temp_max = 11; |
| |
| /* Battery current stats, in mA. */ |
| optional int32 ibatt_min = 12; |
| optional int32 ibatt_avg = 13; |
| optional int32 ibatt_max = 14; |
| |
| /* Input current limit stats, in mA. */ |
| optional int32 icl_min = 15; |
| optional int32 icl_avg = 16; |
| optional int32 icl_max = 17; |
| |
| /** |
| * Efficiency number, receiver operating frequency in kHz for wireless charging |
| * (alignment) |
| */ |
| optional int32 charging_operating_point = 18; |
| /* The minimum power out of the adapter at the given charging tier */ |
| optional int32 min_adapter_power_out = 19; |
| /* The time-averaged power out of the adapter at the given charging tier */ |
| optional int32 time_avg_adapter_power_out = 20; |
| /* The maximum power out of the adapter at the given charging tier */ |
| optional int32 max_adapter_power_out = 21; |
| } |
| |
| /* A message containing an alternate proprietary full battery capacity estimate. */ |
| message BatteryCapacity { |
| optional string reverse_domain_name = 1; |
| /* Sum of the change in coulomb count. */ |
| optional int32 delta_cc_sum = 2; |
| /* Sum of the change in state of charge (battery level). */ |
| optional int32 delta_vfsoc_sum = 3; |
| } |
| |
| /* A message containing health values of UFS */ |
| message StorageUfsHealth { |
| optional string reverse_domain_name = 1; |
| /* The value of lifetimeA for UFS health */ |
| optional int32 lifetime_a = 2; |
| /* The value of lifetimeB for UFS health */ |
| optional int32 lifetime_b = 3; |
| /* The value of lifetimeC for UFS health */ |
| optional int32 lifetime_c = 4; |
| } |
| |
| /* A message containing filesystem stats of F2FS */ |
| message F2fsStatsInfo { |
| optional string reverse_domain_name = 1; |
| /* The value of dirty segments of f2fs */ |
| optional int32 dirty_segments = 2; |
| /* The value of free segments of f2fs */ |
| optional int32 free_segments = 3; |
| /* The times of checkpoint function called in foreground*/ |
| optional int32 cp_calls_fg = 4; |
| /* The times of checkpoint function called in background */ |
| optional int32 cp_calls_bg = 5; |
| /* The times of garbage collection function called in foreground */ |
| optional int32 gc_calls_fg = 6; |
| /* The times of garbage collection function called in background */ |
| optional int32 gc_calls_bg = 7; |
| /* The amount of blocks been moved by garbage collection in foreground */ |
| optional int32 moved_blocks_fg = 8; |
| /* The amount of blocks been moved by garbage collection in background */ |
| optional int32 moved_blocks_bg = 9; |
| /* The average of how many valid blocks is in a segment */ |
| optional int32 valid_blocks = 10; |
| } |
| |
| message ZramMmStat { |
| optional string reverse_domain_name = 1; |
| /* The value of original memory size */ |
| optional int64 orig_data_size = 2; |
| /* The value of compressed memory size */ |
| optional int64 compr_data_size = 3; |
| /* The value of consumed memory size to store compressed memory */ |
| optional int64 mem_used_total = 4; |
| /* The value of number of page filled with same elements data */ |
| optional int64 same_pages = 5; |
| /* The value of number of incompressible page */ |
| optional int64 huge_pages = 6; |
| /* The value of number of incompressible pages since boot */ |
| optional int64 huge_pages_since_boot = 7; |
| } |
| |
| message ZramBdStat { |
| optional string reverse_domain_name = 1; |
| /* the number of pages in backing device */ |
| optional int64 bd_count = 2; |
| /* The number of pages readed from backing device */ |
| optional int64 bd_reads = 3; |
| /* The number of pages written to backing device */ |
| optional int64 bd_writes = 4; |
| } |
| |
| /* A message containing boot times */ |
| message BootStatsInfo { |
| optional string reverse_domain_name = 1; |
| /* The F2FS fsck time in secs */ |
| optional int32 fsck_time_sec = 2; |
| /* The F2FS mounted time in secs */ |
| optional int32 mounted_time_sec = 3; |
| /* The F2FS checkpoint=disable time in secs */ |
| optional int32 checkpoint_time_sec = 4; |
| } |
| |
| /* A message containing wireless charging health info. */ |
| message WirelessChargingStats { |
| /* Captures if a google charger used when start wireless charging */ |
| enum ChargerVendor { |
| VENDOR_UNKNOWN = 0; |
| VENDOR_GOOGLE = 1; |
| } |
| |
| optional string reverse_domain_name = 1; |
| optional ChargerVendor charger_vendor = 2; |
| } |
| |
| /* Current device Orientation */ |
| message DeviceOrientation { |
| enum Orientation { |
| ORIENTATION_UNKNOWN = 0; |
| ORIENTATION_0 = 1; |
| ORIENTATION_90 = 2; |
| ORIENTATION_180 = 3; |
| ORIENTATION_270 = 4; |
| } |
| |
| optional string reverse_domain_name = 1; |
| /* Device orientation. */ |
| optional Orientation orientation = 2; |
| } |
| |
| /* Raw battery capacity stats */ |
| message BatteryCapacityFG { |
| enum LogReason { |
| LOG_REASON_UNKNOWN = 0; |
| LOG_REASON_CONNECTED = 1; |
| LOG_REASON_DISCONNECTED = 2; |
| LOG_REASON_FULL_CHARGE = 3; |
| LOG_REASON_PERCENT_SKIP = 4; |
| LOG_REASON_DIVERGING_FG = 5; |
| } |
| |
| optional string reverse_domain_name = 1; |
| /* Uevent logging reason, enumerated above. */ |
| optional LogReason capacity_log_reason = 2; |
| |
| /* The battery capacity reported from the FG (fuel gauge) hardware */ |
| optional float capacity_gdf = 3; |
| /* The filtered system battery capacity reported to the UI */ |
| optional float capacity_ssoc = 4; |
| /* The fuel gauge capacity curve midpoint FG (fuel gauge) value */ |
| optional float capacity_gdf_curve = 5; |
| /* The fuel gauge capacity curve midpoint UI value */ |
| optional float capacity_ssoc_curve = 6; |
| } |
| |
| message PdVidPid { |
| optional string reverse_domain_name = 1; |
| /* Vendor ID of wired charger */ |
| optional int32 vid = 2; |
| /* Product ID of wired charger */ |
| optional int32 pid = 3; |
| } |
| |
| message BatteryEEPROM { |
| optional string reverse_domain_name = 1; |
| /* The cycle count number; record of charge/discharge times */ |
| optional int32 cycle_cnt = 2; |
| /* The current full capacity of the battery under nominal conditions */ |
| optional int32 full_cap = 3; |
| /* The battery equivalent series resistance */ |
| optional int32 esr = 4; |
| /* Battery resistance related to temperature change */ |
| optional int32 rslow = 5; |
| /* Battery health indicator reflecting the battery age state */ |
| optional int32 soh = 6; |
| /* The battery temperature */ |
| optional int32 batt_temp = 7; |
| |
| /* Battery state of charge (SOC) shutdown point */ |
| optional int32 cutoff_soc = 8; |
| /* Raw battery state of charge (SOC), based on battery current (CC = Coulomb Counter) */ |
| optional int32 cc_soc = 9; |
| /* Estimated battery state of charge (SOC) from batt_soc with endpoint limiting (0% and 100%) */ |
| optional int32 sys_soc = 10; |
| /* Filtered monotonic SOC, handles situations where the cutoff_soc is increased and |
| * then decreased from the battery physical properties |
| */ |
| optional int32 msoc = 11; |
| /* Estimated SOC derived from cc_soc that provides voltage loop feedback correction using |
| * battery voltage, current, and status values |
| */ |
| optional int32 batt_soc = 12; |
| |
| /* Field used for data padding in the EEPROM data */ |
| optional int32 reserve = 13; |
| |
| /* The maximum battery temperature ever seen */ |
| optional int32 max_temp = 14; |
| /* The minimum battery temperature ever seen */ |
| optional int32 min_temp = 15; |
| /* The maximum battery voltage ever seen */ |
| optional int32 max_vbatt = 16; |
| /* The minimum battery voltage ever seen */ |
| optional int32 min_vbatt = 17; |
| /* The maximum battery current ever seen */ |
| optional int32 max_ibatt = 18; |
| /* The minimum battery current ever seen */ |
| optional int32 min_ibatt = 19; |
| /* Field used to verify the integrity of the EEPROM data */ |
| optional int32 checksum = 20; |
| |
| /* Extend data for P21 */ |
| /* Temperature compensation information */ |
| optional int32 tempco = 21; |
| /* Learned characterization related to the voltage gauge */ |
| optional int32 rcomp0 = 22; |
| /* For time to monitor the life of cell */ |
| optional int32 timer_h = 23; |
| /* The full capacity of the battery learning at the end of every charge cycle */ |
| optional int32 full_rep = 24; |
| } |
| |
| /* A message containing an exceptional event from citadel. */ |
| message CitadelEvent { |
| enum Event { |
| ALERT = 1; |
| REBOOTED = 2; |
| UPGRADED = 3; |
| ALERT_V2 = 4; |
| SEC_CH_STATE = 5; |
| }; |
| optional string reverse_domain_name = 1; |
| optional Event event = 2; |
| optional int32 reset_count = 3; |
| optional int64 uptime_micros = 4; |
| enum Priority { |
| LOW = 0; |
| MEDIUM = 1; |
| HIGH = 2; |
| }; |
| optional Priority priority = 5; |
| |
| // ALERT-specific fields. These fields correspond to the interrupt status |
| // bits for alerts within citadel. When alerts fire one or more of these |
| // bits are set to indicate the alert source. |
| optional int32 intr_sts_0 = 6; |
| optional int32 intr_sts_1 = 7; |
| optional int32 intr_sts_2 = 8; |
| |
| // REBOOTED-specific fields. These fields correspond to the details of how |
| // the hardware reboot occurred. A reboot is a noteworthy event for citadel, |
| // as it can be triggered by events like stack overflow or other software |
| // bugs. |
| optional int32 rstsrc = 9; |
| optional int32 exitpd = 10; |
| optional int32 which0 = 11; |
| optional int32 which1 = 12; |
| |
| // UPGRADED-specific field. This field corresponds to the result of FW |
| // upgrade for citadel. |
| optional int32 upgrade_state = 13; |
| |
| // ALERT_V2-specific field. This field corresponds to the GLOBALSEC Log |
| // which contains normal globalsec, camo, temp and buserr. |
| optional int32 alert_grp_0 = 14; |
| optional int32 alert_grp_1 = 15; |
| optional int32 alert_grp_2 = 16; |
| optional int32 alert_grp_3 = 17; |
| optional int32 camo_breaches_0 = 18; |
| optional int32 camo_breaches_1 = 19; |
| optional int32 temp_min = 20; |
| optional int32 temp_max = 21; |
| optional int32 bus_err = 22; |
| |
| // SEC_CH_STATE-specific filed. This field corresponds to the state |
| // of GSA-GSC secure channel. |
| optional int32 sec_ch_state = 23; |
| } |
| |
| /* A message containing the citadel firmware version. */ |
| message CitadelVersion { |
| optional string reverse_domain_name = 1; |
| optional string version = 2; |
| } |
| |
| /* A message containing the speaker impedance. */ |
| message VendorSpeakerImpedance { |
| optional string reverse_domain_name = 1; |
| optional int32 speaker_location = 2; |
| optional int32 impedance = 3; |
| } |
| |
| /** |
| * Logs the reported vendor speaker health stats. |
| * Logged from: hardware/google/pixel/pixelstats/SysfsCollector.cpp |
| */ |
| message VendorSpeakerStatsReported { |
| /* Vendor reverse domain name (expecting "com.google.pixel") */ |
| optional string reverse_domain_name = 1; |
| /* The location of speaker; 0 = left , 1 = right */ |
| optional int32 speaker_location = 2; |
| /* The speaker's impedance value (milliOhm) */ |
| optional int32 impedance = 3; |
| /* The speaker's maximum temperature (milliDegree C) */ |
| optional int32 max_temperature = 4; |
| /* The speaker's execursion length (micrometer) */ |
| optional int32 excursion = 5; |
| /* The speaker's heart beat count */ |
| optional int32 heartbeat = 6; |
| } |
| |
| /* A message containing how many times of ufs host reset */ |
| message StorageUfsResetCount { |
| optional string reverse_domain_name = 1; |
| /* How many UFS error reset are triggered */ |
| optional int32 host_reset_count = 2; |
| } |
| |
| /* A message containing Pixel memory metrics collected hourly. */ |
| message PixelMmMetricsPerHour { |
| optional string reverse_domain_name = 1; |
| optional int64 free_pages = 2; |
| optional int64 anon_pages = 3; |
| optional int64 file_pages = 4; |
| optional int64 slab_reclaimable = 5; |
| optional int64 zspages = 6; |
| optional int64 unevictable = 7; |
| optional int64 ion_total_pools = 8; |
| optional int64 gpu_memory = 9; |
| optional int64 slab_unreclaimable = 10; |
| optional int64 psi_cpu_some_total = 11; |
| optional int64 psi_io_full_total = 12; |
| optional int64 psi_io_some_total = 13; |
| optional int64 psi_mem_full_total = 14; |
| optional int64 psi_mem_some_total = 15; |
| optional int32 psi_cpu_some_avg10_min = 16; |
| optional int32 psi_cpu_some_avg10_max = 17; |
| optional int32 psi_cpu_some_avg10_avg = 18; |
| optional int32 psi_cpu_some_avg60_min = 19; |
| optional int32 psi_cpu_some_avg60_max = 20; |
| optional int32 psi_cpu_some_avg60_avg = 21; |
| optional int32 psi_cpu_some_avg300_min = 22; |
| optional int32 psi_cpu_some_avg300_max = 23; |
| optional int32 psi_cpu_some_avg300_avg = 24; |
| optional int32 psi_io_full_avg10_min = 25; |
| optional int32 psi_io_full_avg10_max = 26; |
| optional int32 psi_io_full_avg10_avg = 27; |
| optional int32 psi_io_full_avg60_min = 28; |
| optional int32 psi_io_full_avg60_max = 29; |
| optional int32 psi_io_full_avg60_avg = 30; |
| optional int32 psi_io_full_avg300_min = 31; |
| optional int32 psi_io_full_avg300_max = 32; |
| optional int32 psi_io_full_avg300_avg = 33; |
| optional int32 psi_io_some_avg10_min = 34; |
| optional int32 psi_io_some_avg10_max = 35; |
| optional int32 psi_io_some_avg10_avg = 36; |
| optional int32 psi_io_some_avg60_min = 37; |
| optional int32 psi_io_some_avg60_max = 38; |
| optional int32 psi_io_some_avg60_avg = 39; |
| optional int32 psi_io_some_avg300_min = 40; |
| optional int32 psi_io_some_avg300_max = 41; |
| optional int32 psi_io_some_avg300_avg = 42; |
| optional int32 psi_mem_full_avg10_min = 43; |
| optional int32 psi_mem_full_avg10_max = 44; |
| optional int32 psi_mem_full_avg10_avg = 45; |
| optional int32 psi_mem_full_avg60_min = 46; |
| optional int32 psi_mem_full_avg60_max = 47; |
| optional int32 psi_mem_full_avg60_avg = 48; |
| optional int32 psi_mem_full_avg300_min = 49; |
| optional int32 psi_mem_full_avg300_max = 50; |
| optional int32 psi_mem_full_avg300_avg = 51; |
| optional int32 psi_mem_some_avg10_min = 52; |
| optional int32 psi_mem_some_avg10_max = 53; |
| optional int32 psi_mem_some_avg10_avg = 54; |
| optional int32 psi_mem_some_avg60_min = 55; |
| optional int32 psi_mem_some_avg60_max = 56; |
| optional int32 psi_mem_some_avg60_avg = 57; |
| optional int32 psi_mem_some_avg300_min = 58; |
| optional int32 psi_mem_some_avg300_max = 59; |
| optional int32 psi_mem_some_avg300_avg = 60; |
| } |
| |
| /* A message containing Pixel memory metrics collected daily. */ |
| message PixelMmMetricsPerDay { |
| optional string reverse_domain_name = 1; |
| optional int64 workingset_refault = 2; /* refault_file */ |
| optional int64 pswpin = 3; |
| optional int64 pswpout = 4; |
| optional int64 allocstall_dma = 5; |
| optional int64 allocstall_dma32 = 6; |
| optional int64 allocstall_normal = 7; |
| optional int64 allocstall_movable = 8; |
| optional int64 pgalloc_dma = 9; |
| optional int64 pgalloc_dma32 = 10; |
| optional int64 pgalloc_normal = 11; |
| optional int64 pgalloc_movable = 12; |
| optional int64 pgsteal_kswapd = 13; |
| optional int64 pgsteal_direct = 14; |
| optional int64 pgscan_kswapd = 15; |
| optional int64 pgscan_direct = 16; |
| optional int64 oom_kill = 17; |
| optional int64 pgalloc_high = 18; |
| optional int64 pgcache_hit = 19; |
| optional int64 pgcache_miss = 20; |
| optional int64 kswapd_stime_clks = 21; |
| optional int64 kcompactd_stime_clks = 22; |
| optional int64 direct_reclaim_native_latency_total_time = 23; |
| optional int64 direct_reclaim_native_latency0 = 24; |
| optional int64 direct_reclaim_native_latency1 = 25; |
| optional int64 direct_reclaim_native_latency2 = 26; |
| optional int64 direct_reclaim_native_latency3 = 27; |
| optional int64 direct_reclaim_visible_latency_total_time = 28; |
| optional int64 direct_reclaim_visible_latency0 = 29; |
| optional int64 direct_reclaim_visible_latency1 = 30; |
| optional int64 direct_reclaim_visible_latency2 = 31; |
| optional int64 direct_reclaim_visible_latency3 = 32; |
| optional int64 direct_reclaim_top_latency_total_time = 33; |
| optional int64 direct_reclaim_top_latency0 = 34; |
| optional int64 direct_reclaim_top_latency1 = 35; |
| optional int64 direct_reclaim_top_latency2 = 36; |
| optional int64 direct_reclaim_top_latency3 = 37; |
| optional int64 direct_reclaim_other_latency_total_time = 38; |
| optional int64 direct_reclaim_other_latency0 = 39; |
| optional int64 direct_reclaim_other_latency1 = 40; |
| optional int64 direct_reclaim_other_latency2 = 41; |
| optional int64 direct_reclaim_other_latency3 = 42; |
| optional int64 compaction_total_time = 43; |
| optional int64 compaction_ev_count0 = 44; |
| optional int64 compaction_ev_count1 = 45; |
| optional int64 compaction_ev_count2 = 46; |
| optional int64 compaction_ev_count3 = 47; |
| optional int64 compaction_ev_count4 = 48; |
| optional int64 workingset_refault_anon = 49; |
| optional int64 workingset_refault_file = 50; |
| optional int64 compact_success = 51; |
| optional int64 compact_fail = 52; |
| optional int64 kswapd_low_wmark_hq = 53; |
| optional int64 kswapd_high_wmark_hq = 54; |
| optional int64 thp_file_alloc = 55; |
| optional int64 thp_zero_page_alloc = 56; |
| optional int64 thp_split_page = 57; |
| optional int64 thp_migration_split = 58; |
| optional int64 thp_deferred_split_page = 59; |
| } |
| |
| /* A message containing CMA metrics collected from dogfooding only. */ |
| message CmaStatus { |
| optional string reverse_domain_name = 1; |
| optional int32 type = 2; |
| optional int64 cma_alloc_pages_attempts = 3; |
| optional int64 cma_alloc_pages_soft_attempts = 4; |
| optional int64 cma_fail_pages = 5; |
| optional int64 cma_fail_soft_pages = 6; |
| optional int64 migrated_pages = 7; |
| optional string cma_heap_name = 8; |
| } |
| |
| /* A message containing CMA metrics (External). */ |
| message CmaStatusExt { |
| optional string reverse_domain_name = 1; |
| optional int32 type = 2; |
| optional int64 cma_alloc_latency_low = 3; |
| optional int64 cma_alloc_latency_mid = 4; |
| optional int64 cma_alloc_latency_high = 5; |
| optional string cma_heap_name = 6; |
| } |
| |
| message F2fsCompressionInfo { |
| optional string reverse_domain_name = 1; |
| /* Show the block count written after compression since mount */ |
| optional int32 compr_written_blocks = 2; |
| /* Show the saved block count with compression since mount */ |
| optional int32 compr_saved_blocks = 3; |
| /* Show the count of inode newly enabled for compression since mount */ |
| optional int32 compr_new_inodes = 4; |
| } |
| |
| /** |
| * Log bucketed battery charge cycles. |
| * |
| * Each bucket represents cycles of the battery past |
| * a given charge point. For example, bucket 1 is the |
| * lowest 1/8th of the battery, and bucket 8 is 100%. |
| * |
| * Logged from: |
| * /sys/class/power_supply/bms/cycle_count, via Vendor. |
| */ |
| message VendorChargeCycles { |
| optional string reverse_domain_name = 1; |
| optional int32 cycle_bucket_1 = 2; |
| optional int32 cycle_bucket_2 = 3; |
| optional int32 cycle_bucket_3 = 4; |
| optional int32 cycle_bucket_4 = 5; |
| optional int32 cycle_bucket_5 = 6; |
| optional int32 cycle_bucket_6 = 7; |
| optional int32 cycle_bucket_7 = 8; |
| optional int32 cycle_bucket_8 = 9; |
| optional int32 cycle_bucket_9 = 10; |
| optional int32 cycle_bucket_10 = 11; |
| } |
| |
| /** |
| * Logs the report of a failed hardware. |
| * |
| * Logged from: |
| * Vendor HALs. |
| * |
| */ |
| message VendorHardwareFailed { |
| enum HardwareType { |
| HARDWARE_FAILED_UNKNOWN = 0; |
| HARDWARE_FAILED_MICROPHONE = 1; |
| HARDWARE_FAILED_CODEC = 2; |
| HARDWARE_FAILED_SPEAKER = 3; |
| HARDWARE_FAILED_FINGERPRINT = 4; |
| } |
| optional string reverse_domain_name = 1; |
| optional HardwareType hardware_type = 2; |
| |
| /** |
| * hardware_location allows vendors to differentiate between multiple |
| * instances of the same hardware_type. The specific locations are vendor |
| * defined integers, referring to board-specific numbering schemes. |
| */ |
| optional int32 hardware_location = 3; |
| /** |
| * failure_code is specific to the HardwareType of the failed hardware. |
| * It should use one of the enum values defined below. |
| */ |
| enum HardwareErrorCode { |
| UNKNOWN = 0; |
| COMPLETE = 1; |
| SPEAKER_HIGH_Z = 2; |
| SPEAKER_SHORT = 3; |
| FINGERPRINT_SENSOR_BROKEN = 4; |
| FINGERPRINT_TOO_MANY_DEAD_PIXELS = 5; |
| DEGRADE = 6; |
| } |
| optional int32 failure_code = 4; |
| } |
| |
| /** |
| * Log slow I/O operations on the primary storage. |
| */ |
| message VendorSlowIo { |
| // Classifications of IO Operations. |
| enum IoOperation { |
| UNKNOWN = 0; |
| READ = 1; |
| WRITE = 2; |
| UNMAP = 3; |
| SYNC = 4; |
| } |
| optional string reverse_domain_name = 1; |
| optional IoOperation operation = 2; |
| |
| // The number of slow IO operations of this type over 24 hours. |
| optional int32 count = 3; |
| } |
| |
| /* |
| * Logs the reported speech DSP status. |
| * Logged from: Vendor audio implementation. |
| */ |
| message VendorSpeechDspStat { |
| optional string reverse_domain_name = 1; |
| // The total Speech DSP uptime in milliseconds. |
| optional int32 total_uptime_millis = 2; |
| // The total Speech DSP downtime in milliseconds. |
| optional int32 total_downtime_millis = 3; |
| optional int32 total_crash_count = 4; |
| optional int32 total_recover_count = 5; |
| } |
| |
| /** |
| * Log an event when the device has been physically dropped. |
| * Reported from the /vendor partition. |
| */ |
| message VendorPhysicalDropDetected { |
| optional string reverse_domain_name = 1; |
| // Confidence that the event was actually a drop, 0 -> 100 |
| optional int32 confidence_pctg = 2; |
| // Peak acceleration of the drop, in 1/1000s of a g. |
| optional int32 accel_peak_thousandths_g = 3; |
| // Duration of freefall in ms |
| optional int32 freefall_time_millis = 4; |
| } |
| |
| /** Represents USB port overheat event. */ |
| message VendorUsbPortOverheat { |
| optional string reverse_domain_name = 1; |
| /* Temperature of USB port at USB plug event, in 1/10ths of degree C. */ |
| optional int32 plug_temperature_deci_c = 2; |
| /* Maximum temperature of USB port during overheat event, in 1/10ths of degree |
| * C. */ |
| optional int32 max_temperature_deci_c = 3; |
| /* Time between USB plug event and overheat threshold trip, in seconds. */ |
| optional int32 time_to_overheat_secs = 4; |
| /* Time between overheat threshold trip and hysteresis, in seconds. */ |
| optional int32 time_to_hysteresis_secs = 5; |
| /* Time between hysteresis and active mitigation ending, in seconds. */ |
| optional int32 time_to_inactive_secs = 6; |
| } |
| |
| /** |
| * Log battery health snapshot. |
| * |
| * Resistance, Voltage, Open Circuit Voltage, Temperature, and Charge Level |
| * are snapshotted periodically over 24hrs. |
| */ |
| message VendorBatteryHealthSnapshot { |
| enum BatterySnapshotType { |
| BATTERY_SNAPSHOT_TYPE_UNKNOWN = 0; |
| BATTERY_SNAPSHOT_TYPE_MIN_TEMP = 1; // Snapshot at min batt temp over 24hrs. |
| BATTERY_SNAPSHOT_TYPE_MAX_TEMP = 2; // Snapshot at max batt temp over 24hrs. |
| BATTERY_SNAPSHOT_TYPE_MIN_RESISTANCE = 3; // Snapshot at min batt resistance over 24hrs. |
| BATTERY_SNAPSHOT_TYPE_MAX_RESISTANCE = 4; // Snapshot at max batt resistance over 24hrs. |
| BATTERY_SNAPSHOT_TYPE_MIN_VOLTAGE = 5; // Snapshot at min batt voltage over 24hrs. |
| BATTERY_SNAPSHOT_TYPE_MAX_VOLTAGE = 6; // Snapshot at max batt voltage over 24hrs. |
| BATTERY_SNAPSHOT_TYPE_MIN_CURRENT = 7; // Snapshot at min batt current over 24hrs. |
| BATTERY_SNAPSHOT_TYPE_MAX_CURRENT = 8; // Snapshot at max batt current over 24hrs. |
| BATTERY_SNAPSHOT_TYPE_MIN_BATT_LEVEL = 9; // Snapshot at min battery level (SoC) over 24hrs. |
| BATTERY_SNAPSHOT_TYPE_MAX_BATT_LEVEL = 10; // Snapshot at max battery level (SoC) over 24hrs. |
| BATTERY_SNAPSHOT_TYPE_AVG_RESISTANCE = 11; // Snapshot at average battery resistance over 24hrs. |
| } |
| optional string reverse_domain_name = 1; |
| optional BatterySnapshotType type = 2; |
| // Temperature, in 1/10ths of degree C. |
| optional int32 temperature_deci_celsius = 3; |
| // Voltage Battery Voltage, in microVolts. |
| optional int32 voltage_micro_volt = 4; |
| // Current Battery current, in microAmps. |
| optional int32 current_micro_amps = 5; |
| // OpenCircuitVoltage Battery Open Circuit Voltage, in microVolts. |
| optional int32 open_circuit_micro_volt = 6; |
| // Resistance Battery Resistance, in microOhms. |
| optional int32 resistance_micro_ohm = 7; |
| // Level Battery Level, as % of full. |
| optional int32 level_percent = 8; |
| } |
| |
| /** |
| * Log battery caused shutdown with the last recorded voltage. |
| */ |
| message VendorBatteryCausedShutdown { |
| optional string reverse_domain_name = 1; |
| // The last recorded battery voltage prior to shutdown. |
| optional int32 last_recorded_micro_volt = 2; |
| } |
| |
| /** |
| * Log mitigation statistics. |
| */ |
| message PowerMitigationStats { |
| optional string reverse_domain_name = 1; |
| // The last triggered count: batoilo. |
| optional int32 batoilo_count = 2; |
| // The last triggered count: vdroop1. |
| optional int32 vdroop1_count = 3; |
| // The last triggered count: vdroop2. |
| optional int32 vdroop2_count = 4; |
| // The last triggered count: smpl_warn. |
| optional int32 smpl_warn_count = 5; |
| // The last triggered count: ocp_cpu1. |
| optional int32 ocp_cpu1_count = 6; |
| // The last triggered count: ocp_cpu2. |
| optional int32 ocp_cpu2_count = 7; |
| // The last triggered count: ocp_gpu. |
| optional int32 ocp_gpu_count = 8; |
| // The last triggered count: ocp_tpu. |
| optional int32 ocp_tpu_count = 9; |
| // The last triggered count: soft_ocp_cpu1. |
| optional int32 soft_ocp_cpu1_count = 10; |
| // The last triggered count: soft_ocp_cpu2. |
| optional int32 soft_ocp_cpu2_count = 11; |
| // The last triggered count: soft_ocp_gpu. |
| optional int32 soft_ocp_gpu_count = 12; |
| // The last triggered count: soft_ocp_tpu. |
| optional int32 soft_ocp_tpu_count = 13; |
| // The last triggered capacity: batoilo. |
| optional int32 batoilo_cap = 14; |
| // The last triggered capacity: vdroop1. |
| optional int32 vdroop1_cap = 15; |
| // The last triggered capacity: vdroop2. |
| optional int32 vdroop2_cap = 16; |
| // The last triggered capacity: smpl_warn. |
| optional int32 smpl_warn_cap = 17; |
| // The last triggered capacity: ocp_cpu1. |
| optional int32 ocp_cpu1_cap = 18; |
| // The last triggered capacity: ocp_cpu2. |
| optional int32 ocp_cpu2_cap = 19; |
| // The last triggered capacity: ocp_gpu. |
| optional int32 ocp_gpu_cap = 20; |
| // The last triggered capacity: ocp_tpu. |
| optional int32 ocp_tpu_cap = 21; |
| // The last triggered capacity: soft_ocp_cpu1. |
| optional int32 soft_ocp_cpu1_cap = 22; |
| // The last triggered capacity: soft_ocp_cpu2. |
| optional int32 soft_ocp_cpu2_cap = 23; |
| // The last triggered capacity: soft_ocp_gpu. |
| optional int32 soft_ocp_gpu_cap = 24; |
| // The last triggered capacity: soft_ocp_tpu. |
| optional int32 soft_ocp_tpu_cap = 25; |
| } |
| |
| /** |
| * Log thermal statistics. |
| */ |
| message ThermalDfsStats { |
| optional string reverse_domain_name = 1; |
| // The last count of BIG cluster dfs triggers |
| optional int32 big_dfs_count = 2; |
| // The last count of MID cluster dfs triggers |
| optional int32 mid_dfs_count = 3; |
| // The last count of LITTLE cluster dfs triggers |
| optional int32 little_dfs_count = 4; |
| // The last count of GPU dfs triggers |
| optional int32 gpu_dfs_count = 5; |
| // The last count of TPU dfs triggers |
| optional int32 tpu_dfs_count = 6; |
| // The last count of DSP dfs triggers |
| optional int32 aur_dfs_count = 7; |
| } |
| |
| /** |
| * Log how many segments have been reclaimed in a specific GC mode. |
| */ |
| message F2fsGcSegmentInfo { |
| optional string reverse_domain_name = 1; |
| /* Reclaimed segments in GC normal mode */ |
| optional int32 reclaimed_segments_normal = 2; |
| /* Reclaimed segments in GC urgent high mode */ |
| optional int32 reclaimed_segments_urgent_high = 3; |
| /* Reclaimed segments in GC urgent low mode */ |
| optional int32 reclaimed_segments_urgent_low = 4; |
| /* Reclaimed segments in GC urgent mid mode */ |
| optional int32 reclaimed_segments_urgent_mid = 5; |
| } |
| |
| /** |
| * Logs an event indicating that a nanoapp loading has failed at the HAL. |
| */ |
| message ChreHalNanoappLoadFailed { |
| // Vendor reverse domain name (expecting "com.google.pixel"). |
| optional string reverse_domain_name = 1; |
| |
| enum Type { |
| TYPE_UNKNOWN = 0; |
| // Corresponds to preloaded nanoapps on the device. |
| TYPE_PRELOADED = 1; |
| // Dynamic loading of a nanoapp (e.g. code download). |
| TYPE_DYNAMIC = 2; |
| } |
| |
| enum Reason { |
| REASON_UNKNOWN = 0; |
| // A generic error code that does not match any of the others. |
| REASON_ERROR_GENERIC = 1; |
| // Failure at the connection between HAL<->CHRE. |
| REASON_CONNECTION_ERROR = 2; |
| // System ran out of memory. |
| REASON_OOM = 3; |
| // Nanoapp did not have the right signing for loading. |
| REASON_SIGNATURE_MISMATCH = 4; |
| } |
| |
| // The 64-bit unique nanoapp identifier of the nanoapp that failed. |
| optional int64 nanoapp_id = 2; |
| |
| // The type of the load event. |
| optional Type type = 3; |
| |
| // The reason for the failure. |
| optional Reason reason = 4; |
| } |
| |
| /** |
| * An enum describing a module within CHRE. |
| */ |
| enum ChreModuleType { |
| CHRE_MODULE_TYPE_UNKNOWN = 0; |
| CHRE_MODULE_TYPE_CHRE = 1; // Core CHRE framework |
| CHRE_MODULE_TYPE_PAL = 2; // PAL module (could be CHPP) |
| CHRE_MODULE_TYPE_NANOAPP = 3; |
| } |
| |
| /** |
| * An enum describing the CHRE PAL type. |
| */ |
| enum ChrePalType { |
| CHRE_PAL_TYPE_UNKNOWN = 0; |
| CHRE_PAL_TYPE_SENSOR = 1; |
| CHRE_PAL_TYPE_WIFI = 2; |
| CHRE_PAL_TYPE_GNSS = 3; |
| CHRE_PAL_TYPE_WWAN = 4; |
| CHRE_PAL_TYPE_AUDIO = 5; |
| CHRE_PAL_TYPE_BLE = 6; |
| } |
| |
| /** |
| * Logs an event indicating that a CHRE PAL open has failed. |
| */ |
| message ChrePalOpenFailed { |
| // Vendor reverse domain name (expecting "com.google.pixel"). |
| optional string reverse_domain_name = 1; |
| |
| enum Type { |
| TYPE_UNKNOWN = 0; |
| // Initial open when CHRE starts. |
| INITIAL_OPEN = 1; |
| // Any form of "reopen" event internally in the PAL. |
| REOPEN = 2; |
| } |
| |
| // The PAL this failure event is for. |
| optional ChrePalType pal = 2; |
| |
| // The type of failure observed. |
| optional Type type = 3; |
| } |
| |
| /** |
| * The type of CHRE API request. |
| */ |
| enum ChreApiType { |
| CHRE_API_TYPE_UNKNOWN = 0; |
| CHRE_API_TYPE_WIFI_SCAN_MONITOR = 1; |
| CHRE_API_TYPE_WIFI_ACTIVE_SCAN = 2; |
| CHRE_API_TYPE_WIFI_RTT_RANGING = 3; |
| } |
| |
| /** |
| * The type of CHRE API error. |
| */ |
| enum ChreError { |
| CHRE_ERROR_UNKNOWN = 0; |
| |
| // No error occurred. |
| CHRE_ERROR_NONE = 1; |
| |
| // An unspecified failure occurred. |
| CHRE_ERROR = 2; |
| |
| // One or more supplied arguments are invalid. |
| CHRE_ERROR_INVALID_ARGUMENT = 3; |
| |
| // Unable to satisfy request because the system is busy. |
| CHRE_ERROR_BUSY = 4; |
| |
| // Unable to allocate memory. |
| CHRE_ERROR_NO_MEMORY = 5; |
| |
| // The requested feature is not supported. |
| CHRE_ERROR_NOT_SUPPORTED = 6; |
| |
| // A timeout occurred while processing the request. |
| CHRE_ERROR_TIMEOUT = 7; |
| |
| // The relevant capability is disabled, for example due to a user |
| // configuration that takes precedence over this request. |
| CHRE_ERROR_FUNCTION_DISABLED = 8; |
| } |
| |
| /** |
| * Distribution of CHRE API error codes. |
| */ |
| message ChreApiErrorCodeDistributionTaken { |
| // Vendor reverse domain name (expecting "com.google.pixel"). |
| optional string reverse_domain_name = 1; |
| |
| // The chreGetTime() value when this snapshot was taken, in milliseconds. |
| optional int32 snapshot_chre_get_time_ms = 2; |
| |
| // The CHRE API type. |
| optional ChreApiType api_type = 3; |
| |
| // Corresponds to the CHRE error code that occurred, as defined in the |
| // "enum chreError" field in chre_api/chre/common.h. |
| optional ChreError error_code = 4; |
| optional int32 num_errors = 5; |
| } |
| |
| /** |
| * Snapshot of the dynamic memory allocated in CHRE. |
| */ |
| message ChreDynamicMemorySnapshotReported { |
| // Vendor reverse domain name (expecting "com.google.pixel"). |
| optional string reverse_domain_name = 1; |
| |
| // The chreGetTime() value when this snapshot was taken, in milliseconds. |
| optional int32 snapshot_chre_get_time_ms = 2; |
| |
| // The type of the module. |
| optional ChreModuleType module_type = 3; |
| |
| // The unique 64-bit ID for a nanoapp, only used if the module_type is NANOAPP. |
| // If module_type is PAL, then it represents the ChrePalType enum. If the module_type |
| // is CHRE, then a zero value should be used. |
| optional int64 pal_type_or_nanoapp_id = 4; |
| |
| // The max allocation amount of this module in bytes. |
| optional int32 max_allocation_bytes = 5; |
| |
| // The current allocation amount of this module in bytes. |
| optional int32 current_allocation_bytes = 6; |
| } |
| |
| /** |
| * Snapshot of the event queue stats in CHRE. |
| */ |
| message ChreEventQueueSnapshotReported { |
| // Vendor reverse domain name (expecting "com.google.pixel"). |
| optional string reverse_domain_name = 1; |
| |
| // The chreGetTime() value when this snapshot was taken, in milliseconds. |
| optional int32 snapshot_chre_get_time_ms = 2; |
| |
| // The maximum size the event queue got to (i.e. num pending events). |
| optional int32 max_event_queue_size = 3; |
| |
| // The average size the event queue got to (i.e. num pending events). |
| optional int32 mean_event_queue_size = 4; |
| |
| // The number of events that were dropped due to capacity limits. |
| optional int32 num_dropped_events = 5; |
| |
| // The maximum amount of time it took for an event, from when it was received, |
| // to when it was delivered to all interested modules. This value represents |
| // the total delay within the CHRE subsystem. |
| optional int64 max_queue_delay_us = 6; |
| |
| // The mean value of the delay in microseconds. |
| optional int64 mean_queue_delay_us = 7; |
| } |
| |
| /** |
| * Indicates that a nanoapp has woken up the AP. |
| */ |
| message ChreApWakeUpOccurred { |
| // Vendor reverse domain name (expecting "com.google.pixel"). |
| optional string reverse_domain_name = 1; |
| |
| // The 64-bit unique nanoapp identifier that describes the entity that has caused an AP wake-up |
| // from CHRE. Whenever this event occurs, this means that the nanoapp sent a message to |
| // the AP causing a transition between suspend/wake-up. |
| optional int64 nanoapp_id = 2; |
| } |
| |
| /** |
| * Snapshot of the current battery health of the device. |
| */ |
| message BatteryHealthStatus { |
| // Vendor reverse domain name (expecting "com.google.pixel"). |
| optional string reverse_domain_name = 1; |
| |
| // The algorithm that computes how the health status and health indexes are calculated. |
| optional int32 health_algorithm = 2; |
| |
| enum HealthStatus { |
| UNKNOWN = 0; // The health status is unknown due to a SW limitation or issue |
| NOMINAL = 1; // The battery is operating as expected |
| MARGINAL = 2; // The battery may need replacement soon |
| NEEDS_REPLACEMENT = 3; // The battery needs replacement |
| FAILED = 4; // The battery has failed and no longer operates as expected |
| } |
| |
| // HealthStatus calculated using health_index, health_perf_index. |
| optional HealthStatus health_status = 3; |
| |
| // A percentage measure of the health of the battery with 100% being perfectly healthy. |
| optional int32 health_index = 4; |
| |
| // A percentage measure of the battery capacity of the device, affected by cycle life degradation. |
| optional int32 health_capacity_index = 5; |
| |
| // A percentage measure of the max performance of the device, affected by impedance growth with 100% being perfectly healthy. |
| optional int32 health_impedance_index = 6; |
| |
| // An index that expresses the likelihood of swelling given the SOC residency stats. |
| optional int32 swelling_cumulative = 7; |
| |
| // The battery capacity used to determine the health index. This is the reference value from b/223759710. |
| optional int32 health_full_capacity = 8; |
| |
| // This is the Rslow (resistance) value used (in part) to determine the Perf Index. The activation impedance (b/223545817) can be calculated from it using the perf index. |
| optional int32 current_impedance = 9; |
| |
| // The (hours) value of TimeH (0xb3), a register value, multiplied by 3.2 hours. |
| optional int32 battery_age = 10; |
| |
| // The cycle count at the time of the log event. |
| optional int32 cycle_count = 11; |
| |
| enum BattDisconnectStatus { |
| BPST_BATT_UNKNOWN = 0; |
| BPST_BATT_CONNECT = 1; |
| BPST_BATT_DISCONNECT = 2; // Result of single battery disconnect detection |
| BPST_BATT_CELL_FAULT = 3; // Result of cell fault detection which means actual disconnection |
| } |
| |
| // Battery disconnect detection stats. |
| optional BattDisconnectStatus battery_disconnect_status = 12; |
| } |
| |
| /** |
| * Log battery SOC/temperature usage data. |
| * |
| * Each data represents cumulative time of the battery |
| * spent over a specific SOC and over a specific temperature |
| * while charging and while discharging in seconds. |
| * |
| * Logged from: |
| * /sys/class/power_supply/battery/swelling_data, via Vendor. |
| */ |
| message BatteryHealthUsage { |
| // Vendor reverse domain name (expecting "com.google.pixel"). |
| optional string reverse_domain_name = 1; |
| |
| // The temperature limit (deg C) used to accumulate the time above this value. |
| optional int32 temperature_limit_deci_c = 2; |
| |
| // The SOC limit (%) used to accumulate the time above this value. |
| optional int32 soc_limit = 3; |
| |
| // Time (s) accumulated only during charge at the given thresholds. |
| optional int32 charge_time_secs = 4; |
| |
| // 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; |
| } |
| |
| /* |
| * Snapshot of the block layer read write stats |
| */ |
| message BlockStatsReported { |
| optional string reverse_domain_name = 1; |
| /* number of read I/Os processed */ |
| optional int64 read_io = 2; |
| /* number of sectors read */ |
| optional int64 read_sectors = 3; |
| /* total wait time for read requests */ |
| optional int64 read_ticks = 4; |
| /* number of write I/Os processed */ |
| optional int64 write_io = 5; |
| /* number of sectors written */ |
| optional int64 write_sectors = 6; |
| /* total wait time for write requests */ |
| optional int64 write_ticks = 7; |
| } |
| |
| /** |
| * Logs the reported vendor audio hardware stats. |
| */ |
| message VendorAudioHardwareStatsReported { |
| optional string reverse_domain_name = 1; |
| /* The percentage of calls in a day where auto-mic-switch triggered. |
| * It represented as a fixed-point integer with three decimal place. |
| * E.g.:12.345% is repsented by 12345. |
| */ |
| optional int32 milli_rate_of_ams_per_day = 2; |
| } |