This patch initializes the last_stats[] for registers prior to starting
authorEugeni Dodonov <eugeni.dodonov@intel.com>
Mon, 5 Sep 2011 22:35:44 +0000 (19:35 -0300)
committerEugeni Dodonov <eugeni.dodonov@intel.com>
Mon, 5 Sep 2011 22:35:44 +0000 (19:35 -0300)
the monitoring itself. This way, the first measure will already contain
the difference from the previous value instead of non-initialized value.

Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
tools/intel_gpu_top.c

index 2000c17..26aa1d3 100644 (file)
@@ -473,6 +473,22 @@ int main(int argc, char **argv)
                ring_init(&blt_ring);
        }
 
+    /* Initialize GPU stats */
+    if (HAS_STATS_REGS(devid)) {
+        for (i = 0; i < STATS_COUNT; i++) {
+            uint32_t stats_high, stats_low, stats_high_2;
+
+            do {
+                stats_high = INREG(stats_regs[i] + 4);
+                stats_low = INREG(stats_regs[i]);
+                stats_high_2 = INREG(stats_regs[i] + 4);
+            } while (stats_high != stats_high_2);
+
+            last_stats[i] = (uint64_t)stats_high << 32 |
+                stats_low;
+        }
+    }
+
        for (;;) {
                int j;
                unsigned long long t1, ti, tf;