Delete cpu affinity config
Bug: 245746308
Test: TH
Change-Id: I0d74f55b7b41e5d6c38be0705582bf12fc9169d9
diff --git a/compos/common/compos_client.rs b/compos/common/compos_client.rs
index d74a6f9..5ea5c06 100644
--- a/compos/common/compos_client.rs
+++ b/compos/common/compos_client.rs
@@ -45,9 +45,6 @@
pub debug_mode: bool,
/// Number of vCPUs to have in the VM. If None, defaults to 1.
pub cpus: Option<NonZeroU32>,
- /// Comma separated list of host CPUs where vCPUs are assigned to. If None, any host CPU can be
- /// used to run any vCPU.
- pub cpu_set: Option<String>,
/// List of task profiles to apply to the VM
pub task_profiles: Vec<String>,
/// If present, overrides the path to the VM config JSON file
@@ -112,7 +109,6 @@
protectedVm: protected_vm,
memoryMib: parameters.memory_mib.unwrap_or(0), // 0 means use the default
numCpus: parameters.cpus.map_or(1, NonZeroU32::get) as i32,
- cpuAffinity: parameters.cpu_set.clone(),
taskProfiles: parameters.task_profiles.clone(),
});
diff --git a/javalib/src/android/system/virtualmachine/VirtualMachineConfig.java b/javalib/src/android/system/virtualmachine/VirtualMachineConfig.java
index b7c7a88..4ecd942 100644
--- a/javalib/src/android/system/virtualmachine/VirtualMachineConfig.java
+++ b/javalib/src/android/system/virtualmachine/VirtualMachineConfig.java
@@ -37,7 +37,6 @@
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
-import java.util.regex.Pattern;
/**
* Represents a configuration of a virtual machine. A configuration consists of hardware
@@ -57,7 +56,6 @@
private static final String KEY_PROTECTED_VM = "protectedVm";
private static final String KEY_MEMORY_MIB = "memoryMib";
private static final String KEY_NUM_CPUS = "numCpus";
- private static final String KEY_CPU_AFFINITY = "cpuAffinity";
// Paths to the APK file of this application.
@NonNull private final String mApkPath;
@@ -106,13 +104,6 @@
private final int mNumCpus;
/**
- * Comma-separated list of CPUs or CPU ranges to run vCPUs on (e.g. 0,1-3,5), or
- * colon-separated list of assignments of vCPU to host CPU assignments (e.g. 0=0:1=1:2=2).
- * Default is no mask which means a vCPU can run on any host CPU.
- */
- private final String mCpuAffinity;
-
- /**
* Path within the APK to the payload config file that defines software aspects of this config.
*/
@NonNull private final String mPayloadConfigPath;
@@ -124,8 +115,7 @@
DebugLevel debugLevel,
boolean protectedVm,
int memoryMib,
- int numCpus,
- String cpuAffinity) {
+ int numCpus) {
mApkPath = apkPath;
mCerts = certs;
mPayloadConfigPath = payloadConfigPath;
@@ -133,7 +123,6 @@
mProtectedVm = protectedVm;
mMemoryMib = memoryMib;
mNumCpus = numCpus;
- mCpuAffinity = cpuAffinity;
}
/** Loads a config from a stream, for example a file. */
@@ -166,9 +155,8 @@
final boolean protectedVm = b.getBoolean(KEY_PROTECTED_VM);
final int memoryMib = b.getInt(KEY_MEMORY_MIB);
final int numCpus = b.getInt(KEY_NUM_CPUS);
- final String cpuAffinity = b.getString(KEY_CPU_AFFINITY);
return new VirtualMachineConfig(apkPath, certs, payloadConfigPath, debugLevel, protectedVm,
- memoryMib, numCpus, cpuAffinity);
+ memoryMib, numCpus);
}
/** Persists this config to a stream, for example a file. */
@@ -249,7 +237,6 @@
parcel.protectedVm = mProtectedVm;
parcel.memoryMib = mMemoryMib;
parcel.numCpus = mNumCpus;
- parcel.cpuAffinity = mCpuAffinity;
// Don't allow apps to set task profiles ... at last for now. Also, don't forget to
// validate the string because these are appended to the cmdline argument.
parcel.taskProfiles = new String[0];
@@ -268,7 +255,6 @@
private boolean mProtectedVm;
private int mMemoryMib;
private int mNumCpus;
- private String mCpuAffinity;
/**
* Creates a builder for the given context (APK), and the payload config file in APK.
@@ -281,7 +267,6 @@
mDebugLevel = DebugLevel.NONE;
mProtectedVm = false;
mNumCpus = 1;
- mCpuAffinity = null;
}
/**
@@ -326,19 +311,6 @@
}
/**
- * Sets on which host CPUs the vCPUs can run. The format is a comma-separated list of CPUs
- * or CPU ranges to run vCPUs on. e.g. "0,1-3,5" to choose host CPUs 0, 1, 2, 3, and 5.
- * Or this can be a colon-separated list of assignments of vCPU to host CPU assignments.
- * e.g. "0=0:1=1:2=2" to map vCPU 0 to host CPU 0, and so on.
- *
- * @hide
- */
- public Builder cpuAffinity(String affinity) {
- mCpuAffinity = affinity;
- return this;
- }
-
- /**
* Builds an immutable {@link VirtualMachineConfig}
*
* @hide
@@ -365,13 +337,6 @@
+ "range [1, " + availableCpus + "]");
}
- if (mCpuAffinity != null
- && !Pattern.matches("[\\d]+(-[\\d]+)?(,[\\d]+(-[\\d]+)?)*", mCpuAffinity)
- && !Pattern.matches("[\\d]+=[\\d]+(:[\\d]+=[\\d]+)*", mCpuAffinity)) {
- throw new IllegalArgumentException("CPU affinity [" + mCpuAffinity + "]"
- + " is invalid");
- }
-
if (mProtectedVm
&& !HypervisorProperties.hypervisor_protected_vm_supported().orElse(false)) {
throw new UnsupportedOperationException(
@@ -384,7 +349,7 @@
return new VirtualMachineConfig(
apkPath, certs, mPayloadConfigPath, mDebugLevel, mProtectedVm, mMemoryMib,
- mNumCpus, mCpuAffinity);
+ mNumCpus);
}
}
}
diff --git a/rialto/tests/test.rs b/rialto/tests/test.rs
index 8a78861..687ce86 100644
--- a/rialto/tests/test.rs
+++ b/rialto/tests/test.rs
@@ -63,7 +63,6 @@
protectedVm: false,
memoryMib: 300,
numCpus: 1,
- cpuAffinity: None,
platformVersion: "~1.0".to_string(),
taskProfiles: vec![],
});
diff --git a/tests/hostside/helper/java/com/android/microdroid/test/host/MicrodroidHostTestCaseBase.java b/tests/hostside/helper/java/com/android/microdroid/test/host/MicrodroidHostTestCaseBase.java
index cff06d5..7a9e2ea 100644
--- a/tests/hostside/helper/java/com/android/microdroid/test/host/MicrodroidHostTestCaseBase.java
+++ b/tests/hostside/helper/java/com/android/microdroid/test/host/MicrodroidHostTestCaseBase.java
@@ -235,11 +235,10 @@
String configPath,
boolean debug,
int memoryMib,
- Optional<Integer> numCpus,
- Optional<String> cpuAffinity)
+ Optional<Integer> numCpus)
throws DeviceNotAvailableException {
return startMicrodroid(androidDevice, buildInfo, apkName, packageName, null, configPath,
- debug, memoryMib, numCpus, cpuAffinity);
+ debug, memoryMib, numCpus);
}
public static String startMicrodroid(
@@ -251,12 +250,11 @@
String configPath,
boolean debug,
int memoryMib,
- Optional<Integer> numCpus,
- Optional<String> cpuAffinity)
+ Optional<Integer> numCpus)
throws DeviceNotAvailableException {
return startMicrodroid(androidDevice, buildInfo, apkName, null, packageName,
extraIdsigPaths, configPath, debug,
- memoryMib, numCpus, cpuAffinity);
+ memoryMib, numCpus);
}
private static void forwardFileToLog(CommandRunner android, String path, String tag)
@@ -280,8 +278,7 @@
String configPath,
boolean debug,
int memoryMib,
- Optional<Integer> numCpus,
- Optional<String> cpuAffinity)
+ Optional<Integer> numCpus)
throws DeviceNotAvailableException {
CommandRunner android = new CommandRunner(androidDevice);
@@ -314,7 +311,6 @@
"--console " + consolePath,
"--mem " + memoryMib,
numCpus.isPresent() ? "--cpus " + numCpus.get() : "",
- cpuAffinity.isPresent() ? "--cpu-affinity " + cpuAffinity.get() : "",
debugFlag,
apkPath,
outApkIdsigPath,
diff --git a/tests/hostside/java/com/android/microdroid/test/MicrodroidTestCase.java b/tests/hostside/java/com/android/microdroid/test/MicrodroidTestCase.java
index 1beee45..d016a67 100644
--- a/tests/hostside/java/com/android/microdroid/test/MicrodroidTestCase.java
+++ b/tests/hostside/java/com/android/microdroid/test/MicrodroidTestCase.java
@@ -86,9 +86,8 @@
private static final int MIN_MEM_ARM64 = 145;
private static final int MIN_MEM_X86_64 = 196;
- // Number of vCPUs and their affinity to host CPUs for testing purpose
+ // Number of vCPUs for testing purpose
private static final int NUM_VCPUS = 3;
- private static final String CPU_AFFINITY = "0,1,2";
@Rule public TestLogData mTestLogs = new TestLogData();
@Rule public TestName mTestName = new TestName();
@@ -510,8 +509,7 @@
configPath,
/* debug */ true,
minMemorySize(),
- Optional.of(NUM_VCPUS),
- Optional.of(CPU_AFFINITY));
+ Optional.of(NUM_VCPUS));
// check until microdroid is shut down
CommandRunner android = new CommandRunner(getDevice());
android.runWithTimeout(15000, "logcat", "-m", "1", "-e", "'crosvm has exited normally'");
@@ -563,8 +561,7 @@
configPath,
/* debug */ true,
minMemorySize(),
- Optional.of(NUM_VCPUS),
- Optional.of(CPU_AFFINITY));
+ Optional.of(NUM_VCPUS));
// Check VmCreationRequested atom and clear the statsd report
List<StatsLog.EventMetricData> data;
@@ -586,7 +583,6 @@
AtomsProto.VmCreationRequested.ConfigType.VIRTUAL_MACHINE_APP_CONFIG,
atomVmCreationRequested.getConfigType());
assertEquals(NUM_VCPUS, atomVmCreationRequested.getNumCpus());
- assertEquals(CPU_AFFINITY, atomVmCreationRequested.getCpuAffinity());
assertEquals(minMemorySize(), atomVmCreationRequested.getMemoryMib());
assertEquals(
"com.android.art:com.android.compos:com.android.sdkext",
@@ -639,8 +635,7 @@
configPath,
/* debug */ true,
minMemorySize(),
- Optional.of(NUM_VCPUS),
- Optional.of(CPU_AFFINITY));
+ Optional.of(NUM_VCPUS));
adbConnectToMicrodroid(getDevice(), cid);
waitForBootComplete();
// Test writing to /data partition
@@ -765,8 +760,7 @@
configPath,
/* debug */ true,
minMemorySize(),
- Optional.of(NUM_VCPUS),
- Optional.of(CPU_AFFINITY));
+ Optional.of(NUM_VCPUS));
adbConnectToMicrodroid(getDevice(), cid);
waitForBootComplete();
rootMicrodroid();
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineAppConfig.aidl b/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineAppConfig.aidl
index a6b228d..cf5398d 100644
--- a/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineAppConfig.aidl
+++ b/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineAppConfig.aidl
@@ -65,15 +65,6 @@
int numCpus = 1;
/**
- * Comma-separated list of CPUs or CPU ranges to run vCPUs on (e.g. 0,1-3,5), or
- * colon-separated list of assignments of vCPU to host CPU assignments (e.g. 0=0:1=1:2=2).
- * Default is no mask which means a vCPU can run on any host CPU.
- *
- * Note: Using a non-null value requires android.permission.USE_CUSTOM_VIRTUAL_MACHINE.
- */
- @nullable String cpuAffinity;
-
- /**
* List of task profile names to apply for the VM
*
* Note: Specifying a value here requires android.permission.USE_CUSTOM_VIRTUAL_MACHINE.
diff --git a/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl b/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl
index d11de03..993bbb0 100644
--- a/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl
+++ b/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl
@@ -55,13 +55,6 @@
int numCpus = 1;
/**
- * Comma-separated list of CPUs or CPU ranges to run vCPUs on (e.g. 0,1-3,5), or
- * colon-separated list of assignments of vCPU to host CPU assignments (e.g. 0=0:1=1:2=2).
- * Default is no mask which means a vCPU can run on any host CPU.
- */
- @nullable String cpuAffinity;
-
- /**
* A version or range of versions of the virtual platform that this config is compatible with.
* The format follows SemVer.
*/
diff --git a/virtualizationservice/src/aidl.rs b/virtualizationservice/src/aidl.rs
index dcc2d48..1eca9fe 100644
--- a/virtualizationservice/src/aidl.rs
+++ b/virtualizationservice/src/aidl.rs
@@ -459,7 +459,6 @@
protected: *is_protected,
memory_mib: config.memoryMib.try_into().ok().and_then(NonZeroU32::new),
cpus: config.numCpus.try_into().ok().and_then(NonZeroU32::new),
- cpu_affinity: config.cpuAffinity.clone(),
task_profiles: config.taskProfiles.clone(),
console_fd,
log_fd,
@@ -598,7 +597,7 @@
) -> Result<VirtualMachineRawConfig> {
// Controlling CPUs is reserved for platform apps only, even when using
// VirtualMachineAppConfig.
- if config.cpuAffinity.is_some() || !config.taskProfiles.is_empty() {
+ if !config.taskProfiles.is_empty() {
check_use_custom_virtual_machine()?
}
@@ -631,7 +630,6 @@
vm_config.name = config.name.clone();
vm_config.protectedVm = config.protectedVm;
vm_config.numCpus = config.numCpus;
- vm_config.cpuAffinity = config.cpuAffinity.clone();
vm_config.taskProfiles = config.taskProfiles.clone();
// Microdroid requires an additional payload disk image and the bootconfig partition.
diff --git a/virtualizationservice/src/atom.rs b/virtualizationservice/src/atom.rs
index 01f3e27..3b29d19 100644
--- a/virtualizationservice/src/atom.rs
+++ b/virtualizationservice/src/atom.rs
@@ -66,7 +66,6 @@
let vm_identifier;
let config_type;
let num_cpus;
- let cpu_affinity;
let memory_mib;
let apexes;
match config {
@@ -74,7 +73,6 @@
vm_identifier = &config.name;
config_type = vm_creation_requested::ConfigType::VirtualMachineAppConfig;
num_cpus = config.numCpus;
- cpu_affinity = config.cpuAffinity.clone().unwrap_or_default();
memory_mib = config.memoryMib;
let vm_payload_config = get_vm_payload_config(config);
@@ -93,7 +91,6 @@
vm_identifier = &config.name;
config_type = vm_creation_requested::ConfigType::VirtualMachineRawConfig;
num_cpus = config.numCpus;
- cpu_affinity = config.cpuAffinity.clone().unwrap_or_default();
memory_mib = config.memoryMib;
apexes = String::new();
}
@@ -108,7 +105,7 @@
binder_exception_code,
config_type,
num_cpus,
- cpu_affinity: &cpu_affinity,
+ cpu_affinity: "", // deprecated
memory_mib,
apexes: &apexes,
// TODO(seungjaeyoo) Fill information about task_profile
diff --git a/virtualizationservice/src/crosvm.rs b/virtualizationservice/src/crosvm.rs
index c579be2..82a9e78 100644
--- a/virtualizationservice/src/crosvm.rs
+++ b/virtualizationservice/src/crosvm.rs
@@ -80,7 +80,6 @@
pub protected: bool,
pub memory_mib: Option<NonZeroU32>,
pub cpus: Option<NonZeroU32>,
- pub cpu_affinity: Option<String>,
pub task_profiles: Vec<String>,
pub console_fd: Option<File>,
pub log_fd: Option<File>,
@@ -457,10 +456,6 @@
command.arg("--cpus").arg(cpus.to_string());
}
- if let Some(cpu_affinity) = config.cpu_affinity {
- command.arg("--cpu-affinity").arg(cpu_affinity);
- }
-
if !config.task_profiles.is_empty() {
command.arg("--task-profiles").arg(config.task_profiles.join(","));
}
diff --git a/vm/src/main.rs b/vm/src/main.rs
index ee0e2e6..b35bd4b 100644
--- a/vm/src/main.rs
+++ b/vm/src/main.rs
@@ -92,10 +92,6 @@
#[structopt(long)]
cpus: Option<u32>,
- /// Host CPUs where vCPUs are run on. If unspecified, vCPU runs on any host CPU.
- #[structopt(long)]
- cpu_affinity: Option<String>,
-
/// Comma separated list of task profile names to apply to the VM
#[structopt(long)]
task_profiles: Vec<String>,
@@ -122,14 +118,6 @@
#[structopt(long)]
cpus: Option<u32>,
- /// Host CPUs where vCPUs are run on. If unspecified, vCPU runs on any host CPU. The format
- /// can be either a comma-separated list of CPUs or CPU ranges to run vCPUs on (e.g.
- /// "0,1-3,5" to choose host CPUs 0, 1, 2, 3, and 5, or a colon-separated list of
- /// assignments of vCPU-to-host-CPU assignments e.g. "0=0:1=1:2=2" to map vCPU 0 to host
- /// CPU 0 and so on.
- #[structopt(long)]
- cpu_affinity: Option<String>,
-
/// Comma separated list of task profile names to apply to the VM
#[structopt(long)]
task_profiles: Vec<String>,
@@ -216,7 +204,6 @@
protected,
mem,
cpus,
- cpu_affinity,
task_profiles,
extra_idsigs,
} => command_run_app(
@@ -234,11 +221,10 @@
protected,
mem,
cpus,
- cpu_affinity,
task_profiles,
&extra_idsigs,
),
- Opt::Run { name, config, daemonize, cpus, cpu_affinity, task_profiles, console, log } => {
+ Opt::Run { name, config, daemonize, cpus, task_profiles, console, log } => {
command_run(
name,
service.as_ref(),
@@ -248,7 +234,6 @@
log.as_deref(),
/* mem */ None,
cpus,
- cpu_affinity,
task_profiles,
)
}
diff --git a/vm/src/run.rs b/vm/src/run.rs
index aaa3988..44e15f9 100644
--- a/vm/src/run.rs
+++ b/vm/src/run.rs
@@ -49,7 +49,6 @@
protected: bool,
mem: Option<u32>,
cpus: Option<u32>,
- cpu_affinity: Option<String>,
task_profiles: Vec<String>,
extra_idsigs: &[PathBuf],
) -> Result<(), Error> {
@@ -102,7 +101,6 @@
protectedVm: protected,
memoryMib: mem.unwrap_or(0) as i32, // 0 means use the VM default
numCpus: cpus.unwrap_or(1) as i32,
- cpuAffinity: cpu_affinity,
taskProfiles: task_profiles,
});
run(
@@ -127,7 +125,6 @@
log_path: Option<&Path>,
mem: Option<u32>,
cpus: Option<u32>,
- cpu_affinity: Option<String>,
task_profiles: Vec<String>,
) -> Result<(), Error> {
let config_file = File::open(config_path).context("Failed to open config file")?;
@@ -144,7 +141,6 @@
} else {
config.name = String::from("VmRun");
}
- config.cpuAffinity = cpu_affinity;
config.taskProfiles = task_profiles;
run(
service,
diff --git a/vmbase/example/tests/test.rs b/vmbase/example/tests/test.rs
index 58fffff..85e0213 100644
--- a/vmbase/example/tests/test.rs
+++ b/vmbase/example/tests/test.rs
@@ -59,7 +59,6 @@
protectedVm: false,
memoryMib: 300,
numCpus: 1,
- cpuAffinity: None,
platformVersion: "~1.0".to_string(),
taskProfiles: vec![],
});