From 0dd6f87e63edcafdb2df9b582d768bfca9e78d6a Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Thu, 3 Oct 2013 11:00:18 +0200 Subject: kvm: Service events in the instruction event queues This changset adds calls to the service the instruction event queues that accidentally went missing from commit [0063c7dd18ec]. The original commit only included the code needed to schedule instruction stops from KVM and missed the functionality to actually service the events. --- src/cpu/kvm/base.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/cpu') diff --git a/src/cpu/kvm/base.cc b/src/cpu/kvm/base.cc index 5e3ec279a..d43288f4f 100644 --- a/src/cpu/kvm/base.cc +++ b/src/cpu/kvm/base.cc @@ -540,6 +540,12 @@ BaseKvmCPU::tick() _status = Running; } + // Service any pending instruction events. The vCPU should + // have exited in time for the event using the instruction + // counter configured by setupInstStop(). + comInstEventQueue[0]->serviceEvents(ctrInsts); + system->instEventQueue.serviceEvents(system->totalNumInsts); + if (tryDrain()) _status = Idle; } break; @@ -1179,7 +1185,6 @@ BaseKvmCPU::ioctlRun() void BaseKvmCPU::setupInstStop() { - if (comInstEventQueue[0]->empty()) { setupInstCounter(0); } else { -- cgit v1.2.3