mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
hypervisor: Use legacy definitions of kvm structs for live-upgrade
Use 'kvm_vcpu_events_old' and 'kvm_clock_data_old' to support deserialization from legacy definitions of kvm structs, so that we can support live-upgrade from previous point releases. Signed-off-by: Bo Chen <chen.bo@intel.com>
This commit is contained in:
@@ -315,7 +315,7 @@ impl From<CpuState> for VcpuKvmState {
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
impl From<kvm_clock_data> for ClockData {
|
||||
fn from(d: kvm_clock_data) -> Self {
|
||||
ClockData::Kvm(d)
|
||||
ClockData::Kvm(d.into())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -323,7 +323,7 @@ impl From<kvm_clock_data> for ClockData {
|
||||
impl From<ClockData> for kvm_clock_data {
|
||||
fn from(ms: ClockData) -> Self {
|
||||
match ms {
|
||||
ClockData::Kvm(s) => s,
|
||||
ClockData::Kvm(s) => s.into(),
|
||||
/* Needed in case other hypervisors are enabled */
|
||||
#[allow(unreachable_patterns)]
|
||||
_ => panic!("CpuState is not valid"),
|
||||
@@ -1977,7 +1977,7 @@ impl cpu::Vcpu for KvmVcpu {
|
||||
msr_entries
|
||||
};
|
||||
|
||||
let vcpu_events = self.get_vcpu_events()?;
|
||||
let vcpu_events = self.get_vcpu_events()?.into();
|
||||
let tsc_khz = self.tsc_khz()?;
|
||||
|
||||
Ok(VcpuKvmState {
|
||||
@@ -2130,7 +2130,7 @@ impl cpu::Vcpu for KvmVcpu {
|
||||
}
|
||||
}
|
||||
|
||||
self.set_vcpu_events(&state.vcpu_events)?;
|
||||
self.set_vcpu_events(&state.vcpu_events.into())?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ pub use {
|
||||
kvm_bindings::kvm_cpuid_entry2, kvm_bindings::kvm_dtable, kvm_bindings::kvm_fpu,
|
||||
kvm_bindings::kvm_lapic_state, kvm_bindings::kvm_mp_state as MpState,
|
||||
kvm_bindings::kvm_msr_entry, kvm_bindings::kvm_regs, kvm_bindings::kvm_segment,
|
||||
kvm_bindings::kvm_sregs, kvm_bindings::kvm_vcpu_events as VcpuEvents,
|
||||
kvm_bindings::kvm_sregs, kvm_bindings::kvm_vcpu_events_old as VcpuEvents,
|
||||
kvm_bindings::kvm_xcrs as ExtendedControlRegisters, kvm_bindings::kvm_xsave,
|
||||
kvm_bindings::CpuId, kvm_bindings::MsrList, kvm_bindings::Msrs as MsrEntries,
|
||||
kvm_bindings::KVM_CPUID_FLAG_SIGNIFCANT_INDEX,
|
||||
|
||||
@@ -162,7 +162,7 @@ pub enum CpuState {
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
pub enum ClockData {
|
||||
#[cfg(feature = "kvm")]
|
||||
Kvm(kvm_bindings::kvm_clock_data),
|
||||
Kvm(kvm_bindings::kvm_clock_data_old),
|
||||
#[cfg(feature = "mshv")]
|
||||
Mshv, /* MSHV does not support ClockData yet */
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user