summaryrefslogtreecommitdiff
path: root/src/cpu/kvm/timer.cc
diff options
context:
space:
mode:
authorAndreas Sandberg <andreas@sandberg.pp.se>2014-04-09 16:01:58 +0200
committerAndreas Sandberg <andreas@sandberg.pp.se>2014-04-09 16:01:58 +0200
commit02b51afb7e6b250b4cd964cd447e71bd4f31236d (patch)
treea6cfea68dd9dae6ecd21340a18b8cc9434ef6388 /src/cpu/kvm/timer.cc
parent221f4f232ae79b8123e7ce28d26a873e1ba9f9dc (diff)
downloadgem5-02b51afb7e6b250b4cd964cd447e71bd4f31236d.tar.xz
kvm, x86: Add initial support for multicore simulation
Simulating a SMP or multicore requires devices to be shared between multiple KVM vCPUs. This means that locking is required when accessing devices. This changeset adds the necessary locking to allow devices to execute correctly. It is implemented by temporarily migrating the KVM CPU to the VM's (and devices) event queue when handling MMIO. Similarly, the VM migrates to the interrupt controller's event queue when delivering an interrupt. The support for fast-forwarding of multicore simulations added by this changeset assumes that all devices in a system are simulated in the same thread and each vCPU has its own thread. Special care must be taken to ensure that devices living under the CPU in the object hierarchy (e.g., the interrupt controller) do not inherit the parent CPUs thread and are assigned to device thread. The KvmVM object is assumed to live in the same thread as the other devices in the system.
Diffstat (limited to 'src/cpu/kvm/timer.cc')
0 files changed, 0 insertions, 0 deletions