From 7865d6e8386c3b2ff509347991ec8961ae2a5b96 Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Mon, 22 Apr 2013 13:20:32 -0400 Subject: [PATCH] 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. --- configs/example/fs.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/configs/example/fs.py b/configs/example/fs.py index 73b0acbfb..1f8e2d3a7 100644 --- a/configs/example/fs.py +++ b/configs/example/fs.py @@ -71,6 +71,13 @@ if args: 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.init_param = options.init_param 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 len(bm) == 2: 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