Move CpuTopology to CpuOptions
Add CpuOptions for easier expansion of options relating to CPUs.
Bug: N/A
Test: TH, /apex/com.android.virt/bin/vm run-microdroid --cpu-topology cpu_count=#|one_cpu|match_host
Change-Id: I24bc31211448ad9fa5fb80382fcc4626216fe08f
diff --git a/android/virtmgr/src/aidl.rs b/android/virtmgr/src/aidl.rs
index 2d31b87..6c01a23 100644
--- a/android/virtmgr/src/aidl.rs
+++ b/android/virtmgr/src/aidl.rs
@@ -31,7 +31,6 @@
use android_system_virtualizationservice::aidl::android::system::virtualizationservice::{
AssignedDevices::AssignedDevices,
AssignableDevice::AssignableDevice,
- CpuTopology::CpuTopology,
DiskImage::DiskImage,
SharedPath::SharedPath,
InputDevice::InputDevice,
@@ -712,24 +711,6 @@
let shared_paths = assemble_shared_paths(&config.sharedPaths, &temporary_directory)?;
- let (cpus, host_cpu_topology) = match config.cpuTopology {
- CpuTopology::MATCH_HOST => (None, true),
- CpuTopology::ONE_CPU => (NonZeroU32::new(1), false),
- CpuTopology::CUSTOM => (
- NonZeroU32::new(
- u32::try_from(config.customVcpuCount)
- .context("bad customVcpuCount")
- .or_binder_exception(ExceptionCode::ILLEGAL_ARGUMENT)?,
- ),
- false,
- ),
- val => {
- return Err(anyhow!("Failed to parse CPU topology value {:?}", val))
- .with_log()
- .or_service_specific_exception(-1);
- }
- };
-
let (vfio_devices, dtbo) = match &config.devices {
AssignedDevices::Devices(devices) if !devices.is_empty() => {
let mut set = HashSet::new();
@@ -840,8 +821,7 @@
.and_then(NonZeroU32::new)
.unwrap_or(NonZeroU32::new(256).unwrap()),
swiotlb_mib: config.swiotlbMib.try_into().ok().and_then(NonZeroU32::new),
- cpus,
- host_cpu_topology,
+ cpus: config.cpuOptions.clone(),
console_out_fd,
console_in_fd,
log_fd,
@@ -1312,10 +1292,7 @@
vm_config.name.clone_from(&config.name);
vm_config.protectedVm = config.protectedVm;
- vm_config.cpuTopology = config.cpuTopology;
- if config.cpuTopology == CpuTopology::CUSTOM {
- bail!("AppConfig doesn't support CpuTopology::CUSTOM");
- }
+ vm_config.cpuOptions = config.cpuOptions.clone();
vm_config.hugePages = config.hugePages || vm_payload_config.hugepages;
vm_config.boostUclamp = config.boostUclamp;