disable virtio-balloon by default for VirtualMachineRawConfig
So that we don't need to add an LL-NDK API to disable it.
To reduce the impact of this change, I've kept the balloon enabled for
rialto and Trusty even though it is likely not needed.
Test: TH
Bug: 369588412
Change-Id: If22280957d735bd40e86b4d43869a4b70a233cd4
diff --git a/android/virtmgr/src/aidl.rs b/android/virtmgr/src/aidl.rs
index 82a5573..79c7d81 100644
--- a/android/virtmgr/src/aidl.rs
+++ b/android/virtmgr/src/aidl.rs
@@ -787,7 +787,7 @@
boost_uclamp: config.boostUclamp,
gpu_config,
audio_config,
- no_balloon: config.noBalloon,
+ balloon: config.balloon,
usb_config,
dump_dt_fd,
};
diff --git a/android/virtmgr/src/crosvm.rs b/android/virtmgr/src/crosvm.rs
index a385b82..2bfa4e1 100644
--- a/android/virtmgr/src/crosvm.rs
+++ b/android/virtmgr/src/crosvm.rs
@@ -133,7 +133,7 @@
pub boost_uclamp: bool,
pub gpu_config: Option<GpuConfig>,
pub audio_config: Option<AudioConfig>,
- pub no_balloon: bool,
+ pub balloon: bool,
pub usb_config: UsbConfig,
pub dump_dt_fd: Option<File>,
}
@@ -975,8 +975,7 @@
.arg("--cid")
.arg(config.cid.to_string());
- if system_properties::read_bool("hypervisor.memory_reclaim.supported", false)?
- && !config.no_balloon
+ if system_properties::read_bool("hypervisor.memory_reclaim.supported", false)? && config.balloon
{
command.arg("--balloon-page-reporting");
} else {
diff --git a/android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl
index 5728a68..3393546 100644
--- a/android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl
+++ b/android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl
@@ -106,7 +106,7 @@
@nullable AudioConfig audioConfig;
- boolean noBalloon;
+ boolean balloon;
/** Enable or disable USB passthrough support */
@nullable UsbConfig usbConfig;
diff --git a/guest/trusty/security_vm/launcher/src/main.rs b/guest/trusty/security_vm/launcher/src/main.rs
index 9611f26..f0af9b6 100644
--- a/guest/trusty/security_vm/launcher/src/main.rs
+++ b/guest/trusty/security_vm/launcher/src/main.rs
@@ -78,6 +78,7 @@
memoryMib: args.memory_size_mib,
cpuTopology: args.cpu_topology,
platformVersion: "~1.0".to_owned(),
+ balloon: true, // TODO: probably don't want ballooning.
// TODO: add instanceId
..Default::default()
});
diff --git a/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java
index 3829f9f..6c4c599 100644
--- a/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java
+++ b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java
@@ -798,7 +798,7 @@
Optional.ofNullable(customImageConfig.getAudioConfig())
.map(ac -> ac.toParcelable())
.orElse(null);
- config.noBalloon = !customImageConfig.useAutoMemoryBalloon();
+ config.balloon = customImageConfig.useAutoMemoryBalloon();
config.usbConfig =
Optional.ofNullable(customImageConfig.getUsbConfig())
.map(
diff --git a/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineCustomImageConfig.java b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineCustomImageConfig.java
index 93f29a9..1708caa 100644
--- a/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineCustomImageConfig.java
+++ b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineCustomImageConfig.java
@@ -486,7 +486,6 @@
private boolean network;
private GpuConfig gpuConfig;
private boolean trackpad;
- // TODO(b/363985291): balloon breaks Linux VM behavior
private boolean autoMemoryBalloon = false;
private UsbConfig usbConfig;
diff --git a/libs/libavf/src/lib.rs b/libs/libavf/src/lib.rs
index 1d7861f..b1edf29 100644
--- a/libs/libavf/src/lib.rs
+++ b/libs/libavf/src/lib.rs
@@ -217,7 +217,7 @@
// SAFETY: `config` is assumed to be a valid, non-null pointer returned by
// AVirtualMachineRawConfig_create. It's the only reference to the object.
let config = unsafe { &mut *config };
- config.noBalloon = !balloon;
+ config.balloon = balloon;
}
/// NOT IMPLEMENTED.
diff --git a/libs/libservice_vm_manager/src/lib.rs b/libs/libservice_vm_manager/src/lib.rs
index 0f322bb..5bb97d7 100644
--- a/libs/libservice_vm_manager/src/lib.rs
+++ b/libs/libservice_vm_manager/src/lib.rs
@@ -238,7 +238,8 @@
memoryMib: VM_MEMORY_MB,
cpuTopology: CpuTopology::ONE_CPU,
platformVersion: "~1.0".to_string(),
- gdbPort: 0, // No gdb
+ gdbPort: 0, // No gdb
+ balloon: true, // TODO: probably don't want ballooning.
..Default::default()
});
let console_out = Some(android_log_fd()?);
diff --git a/libs/vmconfig/src/lib.rs b/libs/vmconfig/src/lib.rs
index ef932c2..e520f0e 100644
--- a/libs/vmconfig/src/lib.rs
+++ b/libs/vmconfig/src/lib.rs
@@ -133,6 +133,7 @@
.collect::<Result<_>>()?,
consoleInputDevice: self.console_input_device.clone(),
usbConfig: usb_config,
+ balloon: true,
..Default::default()
})
}
diff --git a/microfuchsia/microfuchsiad/src/instance_starter.rs b/microfuchsia/microfuchsiad/src/instance_starter.rs
index 8216039..e3c4e8d 100644
--- a/microfuchsia/microfuchsiad/src/instance_starter.rs
+++ b/microfuchsia/microfuchsiad/src/instance_starter.rs
@@ -86,6 +86,7 @@
platformVersion: "1.0.0".into(),
#[cfg(enable_console)]
consoleInputDevice: Some("ttyS0".into()),
+ balloon: true,
..Default::default()
});
let vm_instance = VmInstance::create(