mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-10-03 20:15:45 +00:00
vmm: cpu: Add info!() level debugging to vCPU handling
These messages are intended to be useful to support debugging related to vCPU hotplug/unplug issues. Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
parent
3c2bfbdc95
commit
b107bfcf2c
@ -692,6 +692,8 @@ impl CpuManager {
|
|||||||
entry_point: Option<EntryPoint>,
|
entry_point: Option<EntryPoint>,
|
||||||
snapshot: Option<Snapshot>,
|
snapshot: Option<Snapshot>,
|
||||||
) -> Result<Arc<Mutex<Vcpu>>> {
|
) -> Result<Arc<Mutex<Vcpu>>> {
|
||||||
|
info!("Creating vCPU: cpu_id = {}", cpu_id);
|
||||||
|
|
||||||
let interrupt_controller = if let Some(interrupt_controller) = &self.interrupt_controller {
|
let interrupt_controller = if let Some(interrupt_controller) = &self.interrupt_controller {
|
||||||
Some(interrupt_controller.clone())
|
Some(interrupt_controller.clone())
|
||||||
} else {
|
} else {
|
||||||
@ -749,6 +751,14 @@ impl CpuManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn create_vcpus(&mut self, desired_vcpus: u8, entry_point: Option<EntryPoint>) -> Result<()> {
|
fn create_vcpus(&mut self, desired_vcpus: u8, entry_point: Option<EntryPoint>) -> Result<()> {
|
||||||
|
info!(
|
||||||
|
"Request to create new vCPUs: desired = {}, max = {}, allocated = {}, present = {}",
|
||||||
|
desired_vcpus,
|
||||||
|
self.config.max_vcpus,
|
||||||
|
self.vcpus.len(),
|
||||||
|
self.present_vcpus()
|
||||||
|
);
|
||||||
|
|
||||||
if desired_vcpus > self.config.max_vcpus {
|
if desired_vcpus > self.config.max_vcpus {
|
||||||
return Err(Error::DesiredVCPUCountExceedsMax);
|
return Err(Error::DesiredVCPUCountExceedsMax);
|
||||||
}
|
}
|
||||||
@ -777,6 +787,8 @@ impl CpuManager {
|
|||||||
.vcpu_run_interrupted
|
.vcpu_run_interrupted
|
||||||
.clone();
|
.clone();
|
||||||
|
|
||||||
|
info!("Starting vCPU: cpu_id = {}", cpu_id);
|
||||||
|
|
||||||
let handle = Some(
|
let handle = Some(
|
||||||
thread::Builder::new()
|
thread::Builder::new()
|
||||||
.name(format!("vcpu{}", cpu_id))
|
.name(format!("vcpu{}", cpu_id))
|
||||||
@ -856,6 +868,13 @@ impl CpuManager {
|
|||||||
(desired_vcpus - self.present_vcpus() + 1) as usize,
|
(desired_vcpus - self.present_vcpus() + 1) as usize,
|
||||||
));
|
));
|
||||||
|
|
||||||
|
info!(
|
||||||
|
"Starting vCPUs: desired = {}, allocated = {}, present = {}",
|
||||||
|
desired_vcpus,
|
||||||
|
self.vcpus.len(),
|
||||||
|
self.present_vcpus()
|
||||||
|
);
|
||||||
|
|
||||||
for cpu_id in self.present_vcpus()..desired_vcpus {
|
for cpu_id in self.present_vcpus()..desired_vcpus {
|
||||||
let vcpu = Arc::clone(&self.vcpus[cpu_id as usize]);
|
let vcpu = Arc::clone(&self.vcpus[cpu_id as usize]);
|
||||||
self.start_vcpu(vcpu, vcpu_thread_barrier.clone(), inserting)?;
|
self.start_vcpu(vcpu, vcpu_thread_barrier.clone(), inserting)?;
|
||||||
@ -875,6 +894,7 @@ impl CpuManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn remove_vcpu(&mut self, cpu_id: u8) -> Result<()> {
|
fn remove_vcpu(&mut self, cpu_id: u8) -> Result<()> {
|
||||||
|
info!("Removing vCPU: cpu_id = {}", cpu_id);
|
||||||
let mut state = &mut self.vcpu_states[usize::from(cpu_id)];
|
let mut state = &mut self.vcpu_states[usize::from(cpu_id)];
|
||||||
state.kill.store(true, Ordering::SeqCst);
|
state.kill.store(true, Ordering::SeqCst);
|
||||||
state.signal_thread();
|
state.signal_thread();
|
||||||
|
Loading…
Reference in New Issue
Block a user