diff options
author | 2024-02-08 14:26:11 +0000 | |
---|---|---|
committer | 2024-02-08 18:47:52 +0000 | |
commit | cd98d6ae981c65092e36b29b6725aee73b40599c (patch) | |
tree | fc23953be7fe9abcc85fa32cfc673278bf66993a | |
parent | 3fc3c91394f86fba4051a7150907c6edec49511a (diff) |
Revert from reporting pulled atom ArtDeviceStatus
This is an attempt to see if reporting the ArtDeviceStatus pulled atom
is directly correlated with a performance regression observed in
getApplicationInfoWithFiltering_median - the original change was
introduced in aosp/2943545
This partly reverts commit c0c012c2e85616540865bf793cc423f5ba42aff3.
Bug: 323467582
Bug: 257028435
Test: statsd_testdrive 550 (atom is produced)
Test: statsd_testdrive 10205 (atom is not pulled)
Change-Id: I8deccbe5e9670398677aaf6f2696919005246328
-rw-r--r-- | runtime/metrics/statsd.cc | 34 | ||||
-rw-r--r-- | runtime/metrics/statsd.h | 4 | ||||
-rw-r--r-- | runtime/runtime.cc | 2 |
3 files changed, 14 insertions, 26 deletions
diff --git a/runtime/metrics/statsd.cc b/runtime/metrics/statsd.cc index e6d26d9746..67d677be9c 100644 --- a/runtime/metrics/statsd.cc +++ b/runtime/metrics/statsd.cc @@ -416,30 +416,18 @@ class StatsdBackend : public MetricsBackend { std::unique_ptr<MetricsBackend> CreateStatsdBackend() { return std::make_unique<StatsdBackend>(); } -AStatsManager_PullAtomCallbackReturn DeviceStatusCallback(int32_t atom_tag, - AStatsEventList* data, - [[maybe_unused]] void* cookie) { - if (atom_tag == statsd::ART_DEVICE_STATUS) { - Runtime* runtime = Runtime::Current(); - int32_t boot_image_status; - if (runtime->GetHeap()->HasBootImageSpace() && !runtime->HasImageWithProfile()) { - boot_image_status = statsd::ART_DEVICE_DATUM_REPORTED__BOOT_IMAGE_STATUS__STATUS_FULL; - } else if (runtime->GetHeap()->HasBootImageSpace() && - runtime->GetHeap()->GetBootImageSpaces()[0]->GetProfileFiles().empty()) { - boot_image_status = statsd::ART_DEVICE_DATUM_REPORTED__BOOT_IMAGE_STATUS__STATUS_MINIMAL; - } else { - boot_image_status = statsd::ART_DEVICE_DATUM_REPORTED__BOOT_IMAGE_STATUS__STATUS_NONE; - } - statsd::addAStatsEvent(data, atom_tag, boot_image_status); - return AStatsManager_PULL_SUCCESS; +void ReportDeviceMetrics() { + Runtime* runtime = Runtime::Current(); + int32_t boot_image_status; + if (runtime->GetHeap()->HasBootImageSpace() && !runtime->HasImageWithProfile()) { + boot_image_status = statsd::ART_DEVICE_DATUM_REPORTED__BOOT_IMAGE_STATUS__STATUS_FULL; + } else if (runtime->GetHeap()->HasBootImageSpace() && + runtime->GetHeap()->GetBootImageSpaces()[0]->GetProfileFiles().empty()) { + boot_image_status = statsd::ART_DEVICE_DATUM_REPORTED__BOOT_IMAGE_STATUS__STATUS_MINIMAL; + } else { + boot_image_status = statsd::ART_DEVICE_DATUM_REPORTED__BOOT_IMAGE_STATUS__STATUS_NONE; } - - return AStatsManager_PULL_SKIP; -} - -void SetupCallbackForDeviceStatus() { - AStatsManager_setPullAtomCallback( - statsd::ART_DEVICE_STATUS, /*metadata=*/nullptr, DeviceStatusCallback, /*cookie=*/nullptr); + statsd::stats_write(statsd::ART_DEVICE_DATUM_REPORTED, boot_image_status); } } // namespace metrics diff --git a/runtime/metrics/statsd.h b/runtime/metrics/statsd.h index 00bd595ca1..ae53a22e85 100644 --- a/runtime/metrics/statsd.h +++ b/runtime/metrics/statsd.h @@ -29,10 +29,10 @@ class MetricsBackend; // Statsd is only supported on Android #ifdef __ANDROID__ std::unique_ptr<MetricsBackend> CreateStatsdBackend(); -void SetupCallbackForDeviceStatus(); +void ReportDeviceMetrics(); #else inline std::unique_ptr<MetricsBackend> CreateStatsdBackend() { return nullptr; } -inline void SetupCallbackForDeviceStatus() {} +inline void ReportDeviceMetrics() {} #endif } // namespace metrics diff --git a/runtime/runtime.cc b/runtime/runtime.cc index e6f8c576dc..4279e0e818 100644 --- a/runtime/runtime.cc +++ b/runtime/runtime.cc @@ -1317,7 +1317,7 @@ void Runtime::InitNonZygoteOrPostFork( if (!odrefresh::UploadStatsIfAvailable(&err)) { LOG(WARNING) << "Failed to upload odrefresh metrics: " << err; } - metrics::SetupCallbackForDeviceStatus(); + metrics::ReportDeviceMetrics(); } if (LIKELY(automatically_set_jni_ids_indirection_) && CanSetJniIdType()) { |