mirror of
https://github.com/asterinas/asterinas.git
synced 2025-06-24 01:43:22 +00:00
Strict TLB coherence
This commit is contained in:
committed by
Tate, Hongliang Tian
parent
30ec0be210
commit
4f0acddfd4
@ -457,6 +457,7 @@ impl Vmar_ {
|
||||
}
|
||||
cur_cursor.flusher().issue_tlb_flush(TlbFlushOp::All);
|
||||
cur_cursor.flusher().dispatch_tlb_flush();
|
||||
cur_cursor.flusher().sync_tlb_flush();
|
||||
}
|
||||
|
||||
Ok(new_vmar_)
|
||||
|
@ -188,6 +188,7 @@ impl VmMapping {
|
||||
prop.flags |= new_flags;
|
||||
cursor.map(new_frame.into(), prop);
|
||||
}
|
||||
cursor.flusher().sync_tlb_flush();
|
||||
}
|
||||
VmItem::NotMapped { .. } => {
|
||||
// Map a new frame to the page fault address.
|
||||
@ -385,6 +386,8 @@ impl VmMapping {
|
||||
let range = self.range();
|
||||
let mut cursor = vm_space.cursor_mut(&range)?;
|
||||
cursor.unmap(range.len());
|
||||
cursor.flusher().dispatch_tlb_flush();
|
||||
cursor.flusher().sync_tlb_flush();
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -404,6 +407,7 @@ impl VmMapping {
|
||||
}
|
||||
}
|
||||
cursor.flusher().dispatch_tlb_flush();
|
||||
cursor.flusher().sync_tlb_flush();
|
||||
|
||||
Self { perms, ..self }
|
||||
}
|
||||
|
Reference in New Issue
Block a user