Merge "Set up debian image with zink/lavapipe" into main
diff --git a/android/virtmgr/src/crosvm.rs b/android/virtmgr/src/crosvm.rs
index 8500421..9ee181a 100644
--- a/android/virtmgr/src/crosvm.rs
+++ b/android/virtmgr/src/crosvm.rs
@@ -628,6 +628,7 @@
fn monitor_vm_status(&self, child: Arc<SharedChild>) {
let pid = child.id();
+ let mut metric_countdown = 0;
loop {
{
@@ -637,23 +638,34 @@
break;
}
- let mut vm_metric = self.vm_metric.lock().unwrap();
+ if metric_countdown > 0 {
+ metric_countdown -= 1;
+ } else {
+ metric_countdown = 10;
+ let mut vm_metric = self.vm_metric.lock().unwrap();
- // Get CPU Information
- match get_guest_time(pid) {
- Ok(guest_time) => vm_metric.cpu_guest_time = Some(guest_time),
- Err(e) => error!("Failed to get guest CPU time: {e:?}"),
- }
-
- // Get Memory Information
- match get_rss(pid) {
- Ok(rss) => {
- vm_metric.rss = match &vm_metric.rss {
- Some(x) => Some(Rss::extract_max(x, &rss)),
- None => Some(rss),
+ // Get CPU Information
+ match get_guest_time(pid) {
+ Ok(guest_time) => vm_metric.cpu_guest_time = Some(guest_time),
+ Err(e) => {
+ metric_countdown = 0;
+ error!("Failed to get guest CPU time: {e:?}");
}
}
- Err(e) => error!("Failed to get guest RSS: {}", e),
+
+ // Get Memory Information
+ match get_rss(pid) {
+ Ok(rss) => {
+ vm_metric.rss = match &vm_metric.rss {
+ Some(x) => Some(Rss::extract_max(x, &rss)),
+ None => Some(rss),
+ }
+ }
+ Err(e) => {
+ metric_countdown = 0;
+ error!("Failed to get guest RSS: {}", e);
+ }
+ }
}
}
diff --git a/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachine.java b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachine.java
index 5f634ef..af313a1 100644
--- a/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachine.java
+++ b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachine.java
@@ -276,28 +276,16 @@
@Override
public void onTrimMemory(int level) {
- int percent;
+ /* Treat level < TRIM_MEMORY_UI_HIDDEN as generic low-memory warnings */
+ int percent = 10;
- switch (level) {
- case ComponentCallbacks2.TRIM_MEMORY_RUNNING_CRITICAL:
- percent = 50;
- break;
- case ComponentCallbacks2.TRIM_MEMORY_RUNNING_LOW:
- percent = 30;
- break;
- case ComponentCallbacks2.TRIM_MEMORY_RUNNING_MODERATE:
- percent = 10;
- break;
- case ComponentCallbacks2.TRIM_MEMORY_BACKGROUND:
- case ComponentCallbacks2.TRIM_MEMORY_MODERATE:
- case ComponentCallbacks2.TRIM_MEMORY_COMPLETE:
- /* Release as much memory as we can. The app is on the LMKD LRU kill list. */
- percent = 50;
- break;
- default:
- /* Treat unrecognised messages as generic low-memory warnings. */
- percent = 30;
- break;
+ if (level >= ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN) {
+ percent = 30;
+ }
+
+ if (level >= ComponentCallbacks2.TRIM_MEMORY_BACKGROUND) {
+ /* Release as much memory as we can. The app is on the LMKD LRU kill list. */
+ percent = 50;
}
synchronized (mLock) {