From: Andreas Sandberg Date: Thu, 3 Oct 2013 09:00:18 +0000 (+0200) Subject: kvm: Service events in the instruction event queues X-Git-Tag: stable_2014_02_15~99 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0dd6f87e63edcafdb2df9b582d768bfca9e78d6a;p=gem5.git 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. --- 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 {