mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-10-02 11:35:46 +00:00
vmm: cpu: Pass CpusConfig to simplify the new() prototype
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
b584ec3fb3
commit
0646a90626
@ -10,6 +10,8 @@
|
|||||||
//
|
//
|
||||||
// SPDX-License-Identifier: Apache-2.0 AND BSD-3-Clause
|
// SPDX-License-Identifier: Apache-2.0 AND BSD-3-Clause
|
||||||
//
|
//
|
||||||
|
|
||||||
|
use crate::config::CpusConfig;
|
||||||
use crate::device_manager::DeviceManager;
|
use crate::device_manager::DeviceManager;
|
||||||
#[cfg(feature = "acpi")]
|
#[cfg(feature = "acpi")]
|
||||||
use acpi_tables::{aml, aml::Aml, sdt::SDT};
|
use acpi_tables::{aml, aml::Aml, sdt::SDT};
|
||||||
@ -507,22 +509,21 @@ impl VcpuState {
|
|||||||
|
|
||||||
impl CpuManager {
|
impl CpuManager {
|
||||||
pub fn new(
|
pub fn new(
|
||||||
boot_vcpus: u8,
|
config: &CpusConfig,
|
||||||
max_vcpus: u8,
|
|
||||||
device_manager: &Arc<Mutex<DeviceManager>>,
|
device_manager: &Arc<Mutex<DeviceManager>>,
|
||||||
guest_memory: GuestMemoryAtomic<GuestMemoryMmap>,
|
guest_memory: GuestMemoryAtomic<GuestMemoryMmap>,
|
||||||
kvm: &Kvm,
|
kvm: &Kvm,
|
||||||
fd: Arc<VmFd>,
|
fd: Arc<VmFd>,
|
||||||
reset_evt: EventFd,
|
reset_evt: EventFd,
|
||||||
) -> Result<Arc<Mutex<CpuManager>>> {
|
) -> Result<Arc<Mutex<CpuManager>>> {
|
||||||
let mut vcpu_states = Vec::with_capacity(usize::from(max_vcpus));
|
let mut vcpu_states = Vec::with_capacity(usize::from(config.max_vcpus));
|
||||||
vcpu_states.resize_with(usize::from(max_vcpus), VcpuState::default);
|
vcpu_states.resize_with(usize::from(config.max_vcpus), VcpuState::default);
|
||||||
|
|
||||||
let device_manager = device_manager.lock().unwrap();
|
let device_manager = device_manager.lock().unwrap();
|
||||||
let cpuid = CpuManager::patch_cpuid(kvm)?;
|
let cpuid = CpuManager::patch_cpuid(kvm)?;
|
||||||
let cpu_manager = Arc::new(Mutex::new(CpuManager {
|
let cpu_manager = Arc::new(Mutex::new(CpuManager {
|
||||||
boot_vcpus,
|
boot_vcpus: config.boot_vcpus,
|
||||||
max_vcpus,
|
max_vcpus: config.max_vcpus,
|
||||||
io_bus: device_manager.io_bus().clone(),
|
io_bus: device_manager.io_bus().clone(),
|
||||||
mmio_bus: device_manager.mmio_bus().clone(),
|
mmio_bus: device_manager.mmio_bus().clone(),
|
||||||
ioapic: device_manager.ioapic().clone(),
|
ioapic: device_manager.ioapic().clone(),
|
||||||
|
@ -314,7 +314,6 @@ impl Vm {
|
|||||||
let memory_manager = MemoryManager::new(fd.clone(), &config.lock().unwrap().memory.clone())
|
let memory_manager = MemoryManager::new(fd.clone(), &config.lock().unwrap().memory.clone())
|
||||||
.map_err(Error::MemoryManager)?;
|
.map_err(Error::MemoryManager)?;
|
||||||
|
|
||||||
let guest_memory = memory_manager.lock().unwrap().guest_memory();
|
|
||||||
let device_manager = DeviceManager::new(
|
let device_manager = DeviceManager::new(
|
||||||
fd.clone(),
|
fd.clone(),
|
||||||
config.clone(),
|
config.clone(),
|
||||||
@ -325,21 +324,17 @@ impl Vm {
|
|||||||
)
|
)
|
||||||
.map_err(Error::DeviceManager)?;
|
.map_err(Error::DeviceManager)?;
|
||||||
|
|
||||||
let on_tty = unsafe { libc::isatty(libc::STDIN_FILENO as i32) } != 0;
|
|
||||||
|
|
||||||
let boot_vcpus = config.lock().unwrap().cpus.boot_vcpus;
|
|
||||||
let max_vcpus = config.lock().unwrap().cpus.max_vcpus;
|
|
||||||
let cpu_manager = cpu::CpuManager::new(
|
let cpu_manager = cpu::CpuManager::new(
|
||||||
boot_vcpus,
|
&config.lock().unwrap().cpus.clone(),
|
||||||
max_vcpus,
|
|
||||||
&device_manager,
|
&device_manager,
|
||||||
guest_memory,
|
memory_manager.lock().unwrap().guest_memory(),
|
||||||
&kvm,
|
&kvm,
|
||||||
fd,
|
fd,
|
||||||
reset_evt,
|
reset_evt,
|
||||||
)
|
)
|
||||||
.map_err(Error::CpuManager)?;
|
.map_err(Error::CpuManager)?;
|
||||||
|
|
||||||
|
let on_tty = unsafe { libc::isatty(libc::STDIN_FILENO as i32) } != 0;
|
||||||
Ok(Vm {
|
Ok(Vm {
|
||||||
kernel,
|
kernel,
|
||||||
initramfs,
|
initramfs,
|
||||||
|
Loading…
Reference in New Issue
Block a user