diff --git a/vmm/src/lib.rs b/vmm/src/lib.rs index 548eb23fe..9f0735f1a 100644 --- a/vmm/src/lib.rs +++ b/vmm/src/lib.rs @@ -1584,8 +1584,17 @@ impl Vmm { let dest_cpuid = &{ let vm_config = &src_vm_config.lock().unwrap(); + if vm_config.cpus.features.amx { + // Need to enable AMX tile state components before generating common cpuid + // as this affects what Hypervisor::get_supported_cpuid returns. + self.hypervisor + .enable_amx_state_components() + .map_err(|e| MigratableError::MigrateReceive(e.into()))?; + } + let phys_bits = vm::physical_bits(self.hypervisor.as_ref(), vm_config.cpus.max_phys_bits); + arch::generate_common_cpuid( self.hypervisor.as_ref(), &arch::CpuidConfig {