Skip to content

Commit 75e5750

Browse files
committed
fixup! Track dirty pages from host side
1 parent 65a51b4 commit 75e5750

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/hyperlight_host/src/mem/shared_mem.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -401,13 +401,13 @@ impl ExclusiveSharedMemory {
401401
}
402402

403403
/// Gets the dirty bitmap and then clears it in self.
404-
pub(crate) fn get_and_clear_dirty_pages(&mut self) -> Result<Vec<u64>> {
404+
pub(crate) fn get_and_clear_dirty_pages(&self) -> Result<Vec<u64>> {
405405
let mut guard = self
406406
.dirty_page_tracker
407407
.try_lock()
408408
.map_err(|_| new_error!("Failed to acquire lock on dirty page tracker"))?;
409-
let bitmap = guard.clone();
410-
guard.fill(0);
409+
let mut bitmap = vec![0; guard.len()];
410+
core::mem::swap(&mut bitmap, &mut *guard);
411411
Ok(bitmap)
412412
}
413413

@@ -744,7 +744,7 @@ impl ExclusiveSharedMemory {
744744
}
745745

746746
/// Marks pages that cover bytes [offset, offset + size) as dirty
747-
pub(super) fn mark_pages_dirty(&mut self, offset: usize, size: usize) -> Result<()> {
747+
pub(super) fn mark_pages_dirty(&self, offset: usize, size: usize) -> Result<()> {
748748
bounds_check!(offset, size, self.mem_size());
749749
let mut bitmap = self
750750
.dirty_page_tracker
@@ -1080,7 +1080,7 @@ impl HostSharedMemory {
10801080
}
10811081

10821082
/// Marks pages that cover bytes [offset, offset + size) as dirty
1083-
pub(super) fn mark_pages_dirty(&mut self, offset: usize, size: usize) -> Result<()> {
1083+
pub(super) fn mark_pages_dirty(&self, offset: usize, size: usize) -> Result<()> {
10841084
bounds_check!(offset, size, self.mem_size());
10851085
let mut bitmap = self
10861086
.dirty_page_tracker

0 commit comments

Comments
 (0)