summary refs log tree commit diff
path: root/hypervisor
diff options
context:
space:
mode:
authorGurchetan Singh <gurchetansingh@chromium.org>2020-05-21 18:05:06 -0700
committerCommit Bot <commit-bot@chromium.org>2020-06-12 05:00:37 +0000
commit173fe62df2b82f4d09a36066200f0a1727bd1d22 (patch)
treec3c0588afebd0b43811b3631c1d94168ba72c420 /hypervisor
parent4ffb3d06bdadcfcb79ee2b7bf445ac09da34c218 (diff)
downloadcrosvm-173fe62df2b82f4d09a36066200f0a1727bd1d22.tar
crosvm-173fe62df2b82f4d09a36066200f0a1727bd1d22.tar.gz
crosvm-173fe62df2b82f4d09a36066200f0a1727bd1d22.tar.bz2
crosvm-173fe62df2b82f4d09a36066200f0a1727bd1d22.tar.lz
crosvm-173fe62df2b82f4d09a36066200f0a1727bd1d22.tar.xz
crosvm-173fe62df2b82f4d09a36066200f0a1727bd1d22.tar.zst
crosvm-173fe62df2b82f4d09a36066200f0a1727bd1d22.zip
kvm: use MappedRegion trait
- Reduces code duplication between MMIO and mmap arenas
- Makes adding future types easier
- Makes upcoming deprecation of kvm crate easier
- Use BTreeMap instead of HashMap since it's more efficient

BUG=chromium:924405
TEST=compile and test

Change-Id: I520abed0926489e64aac046e0dc0cfeb72fae7b2
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2216446
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Steven Richman <srichman@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Auto-Submit: Gurchetan Singh <gurchetansingh@chromium.org>
Diffstat (limited to 'hypervisor')
-rw-r--r--hypervisor/src/kvm/mod.rs6
1 files changed, 3 insertions, 3 deletions
diff --git a/hypervisor/src/kvm/mod.rs b/hypervisor/src/kvm/mod.rs
index abffdd5..c738cfa 100644
--- a/hypervisor/src/kvm/mod.rs
+++ b/hypervisor/src/kvm/mod.rs
@@ -8,7 +8,7 @@ mod aarch64;
 mod x86_64;
 
 use std::cmp::Ordering;
-use std::collections::{BinaryHeap, HashMap};
+use std::collections::{BTreeMap, BinaryHeap};
 use std::convert::TryFrom;
 use std::ops::{Deref, DerefMut};
 use std::os::raw::{c_char, c_ulong};
@@ -128,7 +128,7 @@ impl PartialOrd for MemSlot {
 pub struct KvmVm {
     vm: SafeDescriptor,
     guest_mem: GuestMemory,
-    mem_regions: Arc<Mutex<HashMap<u32, Box<dyn MappedRegion>>>>,
+    mem_regions: Arc<Mutex<BTreeMap<u32, Box<dyn MappedRegion>>>>,
     mem_slot_gaps: Arc<Mutex<BinaryHeap<MemSlot>>>,
 }
 
@@ -161,7 +161,7 @@ impl KvmVm {
         Ok(KvmVm {
             vm: vm_descriptor,
             guest_mem,
-            mem_regions: Arc::new(Mutex::new(HashMap::new())),
+            mem_regions: Arc::new(Mutex::new(BTreeMap::new())),
             mem_slot_gaps: Arc::new(Mutex::new(BinaryHeap::new())),
         })
     }