changeset 5307d06e1d0e in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=5307d06e1d0e
description:
config: Add a KVM VM to systems with KVM CPUs
KVM-based CPUs need a KVM VM object in the system to manage
system-global KVM stuff (VM creation, interrupt delivery, memory
managment, etc.). This changeset adds a VM to the system if KVM has
been enabled at compile time (the BaseKvmCPU object exists) and a
KVM-based CPU has been selected at runtime.
diffstat:
configs/example/fs.py | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diffs (37 lines):
diff -r 553ad940c9db -r 5307d06e1d0e configs/example/fs.py
--- a/configs/example/fs.py Mon Apr 22 13:20:32 2013 -0400
+++ b/configs/example/fs.py Mon Apr 22 13:20:32 2013 -0400
@@ -71,6 +71,13 @@
DriveCPUClass = AtomicSimpleCPU
drive_mem_mode = 'atomic'
+# Check if KVM support has been enabled, we might need to do VM
+# configuration if that's the case.
+have_kvm_support = 'BaseKvmCPU' in globals()
+def is_kvm_cpu(cpu_class):
+ return have_kvm_support and cpu_class != None and \
+ issubclass(cpu_class, BaseKvmCPU)
+
# system under test can be any CPU
(TestCPUClass, test_mem_mode, FutureClass) = Simulation.setCPUClass(options)
@@ -116,6 +123,9 @@
test_sys.cpu = [TestCPUClass(cpu_id=i) for i in xrange(np)]
+if is_kvm_cpu(TestCPUClass) or is_kvm_cpu(FutureClass):
+ test_sys.vm = KvmVM()
+
if options.caches or options.l2cache:
test_sys.iocache = IOCache(clock = '1GHz',
addr_ranges = test_sys.mem_ranges)
@@ -163,6 +173,9 @@
if options.kernel is not None:
drive_sys.kernel = binary(options.kernel)
+ if is_kvm_cpu(DriveCPUClass):
+ drive_sys.vm = KvmVM()
+
drive_sys.iobridge = Bridge(delay='50ns',
ranges = drive_sys.mem_ranges)
drive_sys.iobridge.slave = drive_sys.iobus.master
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev