Skip to content

Commit a041675

Browse files
committed
rpc: log latency for /memory/* API calls
So that we can see what's happening Signed-off-by: Babis Chalios <babis.chalios@e2b.dev>
1 parent e83b444 commit a041675

1 file changed

Lines changed: 20 additions & 2 deletions

File tree

src/vmm/src/rpc_interface.rs

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -961,31 +961,49 @@ impl RuntimeApiController {
961961

962962
/// Get guest memory mappings
963963
fn get_guest_memory_mappings(&self) -> Result<VmmData, VmmActionError> {
964+
let start_us = get_time_us(ClockType::Monotonic);
965+
964966
let vmm = self.vmm.lock().expect("Poisoned lock");
965967
let page_size = self.vm_resources.machine_config.huge_pages.page_size();
966968
let mappings = vmm.guest_memory_mappings(page_size);
969+
970+
let elapsed_time_us = get_time_us(ClockType::Monotonic) - start_us;
971+
info!("'get memory mappings' VMM action took {} us.", elapsed_time_us);
972+
967973
Ok(VmmData::MemoryMappings(MemoryMapingsResponse { mappings }))
968974
}
969975

970976
/// Get resident and empty pages information for guest memory
971977
fn get_guest_memory_info(&self) -> Result<VmmData, VmmActionError> {
978+
let start_us = get_time_us(ClockType::Monotonic);
979+
972980
let vmm = self.vmm.lock().expect("Poisoned lock");
973981
let page_size = self.vm_resources.machine_config.huge_pages.page_size();
974982
let (resident, empty) = vmm.guest_memory_info(page_size)?;
983+
984+
let elapsed_time_us = get_time_us(ClockType::Monotonic) - start_us;
985+
info!("'get memory info' VMM action took {} us.", elapsed_time_us);
986+
975987
Ok(VmmData::Memory(MemoryResponse { resident, empty }))
976988
}
977989

978990
/// Get dirty pages information for guest memory
979991
fn get_dirty_memory_info(&self) -> Result<VmmData, VmmActionError> {
992+
let start_us = get_time_us(ClockType::Monotonic);
993+
980994
let vmm = self.vmm.lock().expect("Poisoned lock");
981-
995+
982996
// Check if VM is paused
983997
if vmm.instance_info.state != VmState::Paused {
984998
return Err(VmmActionError::OperationNotSupportedWhileRunning);
985999
}
986-
1000+
9871001
let page_size = self.vm_resources.machine_config.huge_pages.page_size();
9881002
let bitmap = vmm.get_dirty_memory(page_size)?;
1003+
1004+
let elapsed_time_us = get_time_us(ClockType::Monotonic) - start_us;
1005+
info!("'get dirty memory' VMM action took {} us.", elapsed_time_us);
1006+
9891007
Ok(VmmData::MemoryDirty(MemoryDirty { bitmap }))
9901008
}
9911009
}

0 commit comments

Comments
 (0)