vmm: Only generate GED event when new DIMM added

Avoid the ACPI scan in the guest OS when no new DIMM is hotplugged.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
Rob Bradford 2020-01-17 16:56:45 +00:00 committed by Samuel Ortiz
parent 211786ab42
commit 0ab22fea2c
2 changed files with 13 additions and 8 deletions

View File

@ -451,12 +451,14 @@ impl MemoryManager {
Ok(slot) Ok(slot)
} }
pub fn resize(&mut self, desired_ram: u64) -> Result<(), Error> { pub fn resize(&mut self, desired_ram: u64) -> Result<bool, Error> {
if desired_ram >= self.current_ram { if desired_ram > self.current_ram {
self.hotplug_ram_region((desired_ram - self.current_ram) as usize)?; self.hotplug_ram_region((desired_ram - self.current_ram) as usize)?;
self.current_ram = desired_ram; self.current_ram = desired_ram;
Ok(true)
} else {
Ok(false)
} }
Ok(())
} }
} }

View File

@ -500,14 +500,17 @@ impl Vm {
} }
if let Some(desired_memory) = desired_memory { if let Some(desired_memory) = desired_memory {
self.memory_manager if self
.memory_manager
.lock() .lock()
.unwrap() .unwrap()
.resize(desired_memory) .resize(desired_memory)
.map_err(Error::MemoryManager)?; .map_err(Error::MemoryManager)?
self.devices {
.notify_hotplug(HotPlugNotificationFlags::MEMORY_DEVICES_CHANGED) self.devices
.map_err(Error::DeviceManager)?; .notify_hotplug(HotPlugNotificationFlags::MEMORY_DEVICES_CHANGED)
.map_err(Error::DeviceManager)?;
}
self.config.lock().unwrap().memory.size = desired_memory; self.config.lock().unwrap().memory.size = desired_memory;
} }
Ok(()) Ok(())