kvm: Add more VM stats
[gem5.git] / src / cpu / kvm / base.cc
index 539790e527303c10a060261ef2dfa77ce885df54..4c176c18b8e7fec52173879ad51a79bc17a215b1 100644 (file)
@@ -201,6 +201,16 @@ BaseKvmCPU::regStats()
         .desc("total number of KVM exits")
         ;
 
+    numVMHalfEntries
+        .name(name() + ".numVMHalfEntries")
+        .desc("number of KVM entries to finalize pending operations")
+        ;
+
+    numExitSignal
+        .name(name() + ".numExitSignal")
+        .desc("exits due to signal delivery")
+        ;
+
     numMMIO
         .name(name() + ".numMMIO")
         .desc("number of VM exits due to memory mapped IO")
@@ -523,10 +533,12 @@ BaseKvmCPU::tick()
 
           // Enter into the RunningService state unless the
           // simulation was stopped by a timer.
-          if (_kvmRun->exit_reason !=  KVM_EXIT_INTR)
+          if (_kvmRun->exit_reason !=  KVM_EXIT_INTR) {
               _status = RunningService;
-          else
+          } else {
+              ++numExitSignal;
               _status = Running;
+          }
 
           if (tryDrain())
               _status = Idle;
@@ -574,6 +586,8 @@ BaseKvmCPU::kvmRun(Tick ticks)
         // then immediately exits.
         DPRINTF(KvmRun, "KVM: Delivering IO without full guest entry\n");
 
+        ++numVMHalfEntries;
+
         // This signal is always masked while we are executing in gem5
         // and gets unmasked temporarily as soon as we enter into
         // KVM. See setSignalMask() and setupSignalHandler().