From f3ccaab1e982f4482177aefa95575f7d7dae21f7 Mon Sep 17 00:00:00 2001 From: David Hashe Date: Mon, 22 Aug 2016 11:41:05 -0400 Subject: cpu, mem, sim: Change how KVM maps memory Only map memories into the KVM guest address space that are marked as usable by KVM. Create BackingStoreEntry class containing flags for is_conf_reported, in_addr_map, and kvm_map. --- src/mem/abstract_mem.hh | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/mem/abstract_mem.hh') diff --git a/src/mem/abstract_mem.hh b/src/mem/abstract_mem.hh index 8ab28770d..31d34f051 100644 --- a/src/mem/abstract_mem.hh +++ b/src/mem/abstract_mem.hh @@ -111,10 +111,13 @@ class AbstractMemory : public MemObject uint8_t* pmemAddr; // Enable specific memories to be reported to the configuration table - bool confTableReported; + const bool confTableReported; // Should the memory appear in the global address map - bool inAddrMap; + const bool inAddrMap; + + // Should KVM map this memory for the guest + const bool kvmMap; std::list lockedAddrList; @@ -282,6 +285,14 @@ class AbstractMemory : public MemObject */ bool isInAddrMap() const { return inAddrMap; } + /** + * When shadow memories are in use, KVM may want to make one or the other, + * but cannot map both into the guest address space. + * + * @return if this memory should be mapped into the KVM guest address space + */ + bool isKvmMap() const { return kvmMap; } + /** * Perform an untimed memory access and update all the state * (e.g. locked addresses) and statistics accordingly. The packet -- cgit v1.2.3