summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Stefano Cianciulli <scianciulli@google.com> 2024-02-08 14:26:11 +0000
committer Stefano Cianciulli <scianciulli@google.com> 2024-02-08 18:47:52 +0000
commitcd98d6ae981c65092e36b29b6725aee73b40599c (patch)
treefc23953be7fe9abcc85fa32cfc673278bf66993a
parent3fc3c91394f86fba4051a7150907c6edec49511a (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.cc34
-rw-r--r--runtime/metrics/statsd.h4
-rw-r--r--runtime/runtime.cc2
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()) {