arch, vmm: Add new struct CpuidConfig

This struct contains all configuration fields that controls the way how
we generate CPUID for the guest on x86_64. This allows cleaner extension
when adding new configuration fields.

Signed-off-by: Bo Chen <chen.bo@intel.com>
This commit is contained in:
Bo Chen
2023-10-11 11:52:24 -07:00
committed by Bo Chen
parent 30975ea102
commit 7dd260f82f
5 changed files with 50 additions and 34 deletions

View File

@@ -2415,11 +2415,13 @@ impl Snapshottable for Vm {
);
arch::generate_common_cpuid(
&self.hypervisor,
None,
phys_bits,
self.config.lock().unwrap().cpus.kvm_hyperv,
#[cfg(feature = "tdx")]
tdx_enabled,
&arch::CpuidConfig {
sgx_epc_sections: None,
phys_bits,
kvm_hyperv: self.config.lock().unwrap().cpus.kvm_hyperv,
#[cfg(feature = "tdx")]
tdx: tdx_enabled,
},
)
.map_err(|e| {
MigratableError::MigrateReceive(anyhow!("Error generating common cpuid: {:?}", e))