mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-10-01 02:55:45 +00:00
vmm: memory_manager: Factorize configuration validation
In order to simplify MemoryManager::new() function. let's move the memory configuration validation to its own function. Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
This commit is contained in:
parent
3fbdd7e16c
commit
63c6c78c4e
@ -544,17 +544,13 @@ impl MemoryManager {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(
|
pub fn validate_memory_config(
|
||||||
vm: Arc<dyn hypervisor::Vm>,
|
|
||||||
config: &MemoryConfig,
|
config: &MemoryConfig,
|
||||||
prefault: Option<bool>,
|
user_provided_zones: bool,
|
||||||
phys_bits: u8,
|
) -> Result<(u64, Vec<MemoryZoneConfig>, bool), Error> {
|
||||||
#[cfg(feature = "tdx")] tdx_enabled: bool,
|
let mut allow_mem_hotplug = false;
|
||||||
) -> Result<Arc<Mutex<MemoryManager>>, Error> {
|
|
||||||
let user_provided_zones = config.size == 0;
|
|
||||||
let mut allow_mem_hotplug: bool = false;
|
|
||||||
|
|
||||||
let (ram_size, zones) = if !user_provided_zones {
|
if !user_provided_zones {
|
||||||
if config.zones.is_some() {
|
if config.zones.is_some() {
|
||||||
error!(
|
error!(
|
||||||
"User defined memory regions can't be provided if the \
|
"User defined memory regions can't be provided if the \
|
||||||
@ -608,7 +604,7 @@ impl MemoryManager {
|
|||||||
prefault: config.prefault,
|
prefault: config.prefault,
|
||||||
}];
|
}];
|
||||||
|
|
||||||
(config.size, zones)
|
Ok((config.size, zones, allow_mem_hotplug))
|
||||||
} else {
|
} else {
|
||||||
if config.zones.is_none() {
|
if config.zones.is_none() {
|
||||||
error!(
|
error!(
|
||||||
@ -669,8 +665,21 @@ impl MemoryManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
(total_ram_size, zones)
|
Ok((total_ram_size, zones, allow_mem_hotplug))
|
||||||
};
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn new(
|
||||||
|
vm: Arc<dyn hypervisor::Vm>,
|
||||||
|
config: &MemoryConfig,
|
||||||
|
prefault: Option<bool>,
|
||||||
|
phys_bits: u8,
|
||||||
|
#[cfg(feature = "tdx")] tdx_enabled: bool,
|
||||||
|
) -> Result<Arc<Mutex<MemoryManager>>, Error> {
|
||||||
|
let user_provided_zones = config.size == 0;
|
||||||
|
|
||||||
|
let (ram_size, zones, allow_mem_hotplug) =
|
||||||
|
Self::validate_memory_config(config, user_provided_zones)?;
|
||||||
|
|
||||||
// Init guest memory
|
// Init guest memory
|
||||||
let arch_mem_regions = arch::arch_memory_regions(ram_size);
|
let arch_mem_regions = arch::arch_memory_regions(ram_size);
|
||||||
|
Loading…
Reference in New Issue
Block a user