mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
hypervisor: improve error chain
On-behalf-of: SAP philipp.schuster@sap.com Signed-off-by: Philipp Schuster <philipp.schuster@cyberus-technology.de>
This commit is contained in:
committed by
Rob Bradford
parent
aa898db8d7
commit
b4c37def26
@@ -299,7 +299,7 @@ pub enum HypervisorCpuError {
|
||||
/// Failed to initialize PMU
|
||||
///
|
||||
#[error("Failed to initialize PMU")]
|
||||
InitializePmu,
|
||||
InitializePmu(#[source] anyhow::Error),
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
///
|
||||
/// Error getting TSC frequency
|
||||
|
||||
@@ -28,6 +28,8 @@ use std::sync::Mutex;
|
||||
use std::sync::atomic::{AtomicBool, Ordering};
|
||||
use std::sync::{Arc, RwLock};
|
||||
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
use anyhow::Context;
|
||||
use anyhow::anyhow;
|
||||
#[cfg(feature = "sev_snp")]
|
||||
use kvm_bindings::kvm_create_guest_memfd;
|
||||
@@ -2198,7 +2200,8 @@ impl cpu::Vcpu for KvmVcpu {
|
||||
let cpuid: Vec<kvm_bindings::kvm_cpuid_entry2> =
|
||||
cpuid.iter().map(|e| (*e).into()).collect();
|
||||
let kvm_cpuid = <CpuId>::from_entries(&cpuid)
|
||||
.map_err(|_| cpu::HypervisorCpuError::SetCpuid(anyhow!("failed to create CpuId")))?;
|
||||
.context("failed to create CpuId")
|
||||
.map_err(cpu::HypervisorCpuError::SetCpuid)?;
|
||||
|
||||
self.fd
|
||||
.set_cpuid2(&kvm_cpuid)
|
||||
@@ -3338,10 +3341,10 @@ impl cpu::Vcpu for KvmVcpu {
|
||||
};
|
||||
self.fd
|
||||
.set_device_attr(&cpu_attr_irq)
|
||||
.map_err(|_| cpu::HypervisorCpuError::InitializePmu)?;
|
||||
.map_err(|e| cpu::HypervisorCpuError::InitializePmu(e.into()))?;
|
||||
self.fd
|
||||
.set_device_attr(&cpu_attr)
|
||||
.map_err(|_| cpu::HypervisorCpuError::InitializePmu)
|
||||
.map_err(|e| cpu::HypervisorCpuError::InitializePmu(e.into()))
|
||||
}
|
||||
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
|
||||
@@ -9,6 +9,8 @@ use std::collections::HashMap;
|
||||
use std::num::NonZeroUsize;
|
||||
use std::sync::{Arc, RwLock};
|
||||
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
use anyhow::Context;
|
||||
use anyhow::anyhow;
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
use arc_swap::ArcSwap;
|
||||
@@ -1427,7 +1429,8 @@ impl cpu::Vcpu for MshvVcpu {
|
||||
fn set_cpuid2(&self, cpuid: &[CpuIdEntry]) -> cpu::Result<()> {
|
||||
let cpuid: Vec<mshv_bindings::hv_cpuid_entry> = cpuid.iter().map(|e| (*e).into()).collect();
|
||||
let mshv_cpuid = <CpuId>::from_entries(&cpuid)
|
||||
.map_err(|_| cpu::HypervisorCpuError::SetCpuid(anyhow!("failed to create CpuId")))?;
|
||||
.context("failed to create CpuId")
|
||||
.map_err(cpu::HypervisorCpuError::SetCpuid)?;
|
||||
|
||||
self.fd
|
||||
.register_intercept_result_cpuid(&mshv_cpuid)
|
||||
|
||||
Reference in New Issue
Block a user