kvm: Fix latency calculation of IPR accesses
authorAndreas Sandberg <andreas@sandberg.pp.se>
Wed, 16 Oct 2013 16:12:15 +0000 (18:12 +0200)
committerAndreas Sandberg <andreas@sandberg.pp.se>
Wed, 16 Oct 2013 16:12:15 +0000 (18:12 +0200)
When handling IPR accesses in doMMIOAccess, the KVM CPU used
clockEdge() to convert between cycles and ticks. This is incorrect
since doMMIOAccess is supposed to return a latency in ticks rather
than when the access is done. This changeset fixes this issue by
returning clockPeriod() * ipr_delay instead.

src/cpu/kvm/base.cc

index d43288f4f7b0d12118e0164ae4fcb4944094c094..d03657a88984a23a72419e6c0afcee65319f255a 100644 (file)
@@ -978,7 +978,7 @@ BaseKvmCPU::doMMIOAccess(Addr paddr, void *data, int size, bool write)
         const Cycles ipr_delay(write ?
                              TheISA::handleIprWrite(tc, &pkt) :
                              TheISA::handleIprRead(tc, &pkt));
-        return clockEdge(ipr_delay);
+        return clockPeriod() * ipr_delay;
     } else {
         return dataPort.sendAtomic(&pkt);
     }