mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2025-02-22 11:22:26 +00:00
vmm: cleanup legacy console device management
Signed-off-by: Praveen K Paladugu <prapal@linux.microsoft.com>
This commit is contained in:
parent
52eebaf6b2
commit
dc723171a7
@ -780,15 +780,6 @@ pub struct DeviceManager {
|
||||
// Console abstraction
|
||||
console: Arc<Console>,
|
||||
|
||||
// console PTY
|
||||
console_pty: Option<Arc<Mutex<PtyPair>>>,
|
||||
|
||||
// serial PTY
|
||||
serial_pty: Option<Arc<Mutex<PtyPair>>>,
|
||||
|
||||
// debug-console PTY
|
||||
debug_console_pty: Option<Arc<Mutex<PtyPair>>>,
|
||||
|
||||
// Serial Manager
|
||||
serial_manager: Option<Arc<SerialManager>>,
|
||||
|
||||
@ -1168,10 +1159,7 @@ impl DeviceManager {
|
||||
.map_err(DeviceManagerError::EventFd)?,
|
||||
acpi_address,
|
||||
selected_segment: 0,
|
||||
serial_pty: None,
|
||||
serial_manager: None,
|
||||
console_pty: None,
|
||||
debug_console_pty: None,
|
||||
console_resize_pipe: None,
|
||||
original_termios_opt: Arc::new(Mutex::new(None)),
|
||||
virtio_mem_devices: Vec::new(),
|
||||
@ -1204,33 +1192,12 @@ impl DeviceManager {
|
||||
Ok(device_manager)
|
||||
}
|
||||
|
||||
pub fn serial_pty(&self) -> Option<PtyPair> {
|
||||
self.serial_pty
|
||||
.as_ref()
|
||||
.map(|pty| pty.lock().unwrap().clone())
|
||||
}
|
||||
|
||||
pub fn console_pty(&self) -> Option<PtyPair> {
|
||||
self.console_pty
|
||||
.as_ref()
|
||||
.map(|pty| pty.lock().unwrap().clone())
|
||||
}
|
||||
|
||||
pub fn debug_console_pty(&self) -> Option<PtyPair> {
|
||||
self.debug_console_pty
|
||||
.as_ref()
|
||||
.map(|pty| pty.lock().unwrap().clone())
|
||||
}
|
||||
|
||||
pub fn console_resize_pipe(&self) -> Option<Arc<File>> {
|
||||
self.console_resize_pipe.clone()
|
||||
}
|
||||
|
||||
pub fn create_devices(
|
||||
&mut self,
|
||||
serial_pty: Option<PtyPair>,
|
||||
console_pty: Option<PtyPair>,
|
||||
debug_console_pty: Option<PtyPair>,
|
||||
console_info: Option<ConsoleInfo>,
|
||||
console_resize_pipe: Option<File>,
|
||||
original_termios_opt: Arc<Mutex<Option<termios>>>,
|
||||
@ -1294,9 +1261,6 @@ impl DeviceManager {
|
||||
self.console = self.add_console_devices(
|
||||
&legacy_interrupt_manager,
|
||||
&mut virtio_devices,
|
||||
serial_pty,
|
||||
console_pty,
|
||||
debug_console_pty,
|
||||
console_info,
|
||||
console_resize_pipe,
|
||||
)?;
|
||||
@ -2079,7 +2043,6 @@ impl DeviceManager {
|
||||
})
|
||||
}
|
||||
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
/// Adds all devices that behave like a console with respect to the VM
|
||||
/// configuration. This includes:
|
||||
/// - debug-console
|
||||
@ -2089,10 +2052,6 @@ impl DeviceManager {
|
||||
&mut self,
|
||||
interrupt_manager: &Arc<dyn InterruptManager<GroupConfig = LegacyIrqGroupConfig>>,
|
||||
virtio_devices: &mut Vec<MetaVirtioDevice>,
|
||||
_serial_pty: Option<PtyPair>,
|
||||
_console_pty: Option<PtyPair>,
|
||||
#[cfg(target_arch = "x86_64")] _debug_console_pty: Option<PtyPair>,
|
||||
#[cfg(not(target_arch = "x86_64"))] _: Option<PtyPair>,
|
||||
console_info: Option<ConsoleInfo>,
|
||||
console_resize_pipe: Option<File>,
|
||||
) -> DeviceManagerResult<Arc<Console>> {
|
||||
|
@ -811,9 +811,6 @@ impl Vmm {
|
||||
timestamp,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
Arc::clone(&self.original_termios_opt),
|
||||
Some(snapshot),
|
||||
)
|
||||
@ -1264,9 +1261,6 @@ impl RequestHandler for Vmm {
|
||||
&self.seccomp_action,
|
||||
self.hypervisor.clone(),
|
||||
activate_evt,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
self.console_info.clone(),
|
||||
None,
|
||||
Arc::clone(&self.original_termios_opt),
|
||||
@ -1394,9 +1388,6 @@ impl RequestHandler for Vmm {
|
||||
&self.seccomp_action,
|
||||
self.hypervisor.clone(),
|
||||
activate_evt,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
self.console_info.clone(),
|
||||
None,
|
||||
Arc::clone(&self.original_termios_opt),
|
||||
@ -1443,24 +1434,14 @@ impl RequestHandler for Vmm {
|
||||
event!("vm", "rebooting");
|
||||
|
||||
// First we stop the current VM
|
||||
let (config, serial_pty, console_pty, debug_console_pty, console_resize_pipe) =
|
||||
if let Some(mut vm) = self.vm.take() {
|
||||
let (config, console_resize_pipe) = if let Some(mut vm) = self.vm.take() {
|
||||
let config = vm.get_config();
|
||||
let serial_pty = vm.serial_pty();
|
||||
let console_pty = vm.console_pty();
|
||||
let debug_console_pty = vm.debug_console_pty();
|
||||
let console_resize_pipe = vm
|
||||
.console_resize_pipe()
|
||||
.as_ref()
|
||||
.map(|pipe| pipe.try_clone().unwrap());
|
||||
vm.shutdown()?;
|
||||
(
|
||||
config,
|
||||
serial_pty,
|
||||
console_pty,
|
||||
debug_console_pty,
|
||||
console_resize_pipe,
|
||||
)
|
||||
(config, console_resize_pipe)
|
||||
} else {
|
||||
return Err(VmError::VmNotCreated);
|
||||
};
|
||||
@ -1501,9 +1482,6 @@ impl RequestHandler for Vmm {
|
||||
&self.seccomp_action,
|
||||
self.hypervisor.clone(),
|
||||
activate_evt,
|
||||
serial_pty,
|
||||
console_pty,
|
||||
debug_console_pty,
|
||||
self.console_info.clone(),
|
||||
console_resize_pipe,
|
||||
Arc::clone(&self.original_termios_opt),
|
||||
|
@ -22,7 +22,7 @@ use crate::coredump::{
|
||||
CpuElf64Writable, DumpState, Elf64Writable, GuestDebuggable, GuestDebuggableError, NoteDescType,
|
||||
};
|
||||
use crate::cpu;
|
||||
use crate::device_manager::{DeviceManager, DeviceManagerError, PtyPair};
|
||||
use crate::device_manager::{DeviceManager, DeviceManagerError};
|
||||
use crate::device_tree::DeviceTree;
|
||||
#[cfg(feature = "guest_debug")]
|
||||
use crate::gdb::{Debuggable, DebuggableError, GdbRequestPayload, GdbResponsePayload};
|
||||
@ -488,9 +488,6 @@ impl Vm {
|
||||
hypervisor: Arc<dyn hypervisor::Hypervisor>,
|
||||
activate_evt: EventFd,
|
||||
timestamp: Instant,
|
||||
serial_pty: Option<PtyPair>,
|
||||
console_pty: Option<PtyPair>,
|
||||
debug_console_pty: Option<PtyPair>,
|
||||
console_info: Option<ConsoleInfo>,
|
||||
console_resize_pipe: Option<File>,
|
||||
original_termios: Arc<Mutex<Option<termios>>>,
|
||||
@ -648,14 +645,7 @@ impl Vm {
|
||||
device_manager
|
||||
.lock()
|
||||
.unwrap()
|
||||
.create_devices(
|
||||
serial_pty,
|
||||
console_pty,
|
||||
debug_console_pty,
|
||||
console_info,
|
||||
console_resize_pipe,
|
||||
original_termios,
|
||||
)
|
||||
.create_devices(console_info, console_resize_pipe, original_termios)
|
||||
.map_err(Error::DeviceManager)?;
|
||||
|
||||
#[cfg(feature = "tdx")]
|
||||
@ -806,9 +796,6 @@ impl Vm {
|
||||
seccomp_action: &SeccompAction,
|
||||
hypervisor: Arc<dyn hypervisor::Hypervisor>,
|
||||
activate_evt: EventFd,
|
||||
serial_pty: Option<PtyPair>,
|
||||
console_pty: Option<PtyPair>,
|
||||
debug_console_pty: Option<PtyPair>,
|
||||
console_info: Option<ConsoleInfo>,
|
||||
console_resize_pipe: Option<File>,
|
||||
original_termios: Arc<Mutex<Option<termios>>>,
|
||||
@ -887,9 +874,6 @@ impl Vm {
|
||||
hypervisor,
|
||||
activate_evt,
|
||||
timestamp,
|
||||
serial_pty,
|
||||
console_pty,
|
||||
debug_console_pty,
|
||||
console_info,
|
||||
console_resize_pipe,
|
||||
original_termios,
|
||||
@ -1366,18 +1350,6 @@ impl Vm {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn serial_pty(&self) -> Option<PtyPair> {
|
||||
self.device_manager.lock().unwrap().serial_pty()
|
||||
}
|
||||
|
||||
pub fn console_pty(&self) -> Option<PtyPair> {
|
||||
self.device_manager.lock().unwrap().console_pty()
|
||||
}
|
||||
|
||||
pub fn debug_console_pty(&self) -> Option<PtyPair> {
|
||||
self.device_manager.lock().unwrap().debug_console_pty()
|
||||
}
|
||||
|
||||
pub fn console_resize_pipe(&self) -> Option<Arc<File>> {
|
||||
self.device_manager.lock().unwrap().console_resize_pipe()
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user