[gnome-talos] Split meta section into "system" and "gpu", add report graphs for GPU data



commit 8e6e240e1d6ee6b86f18cfd100654da3d5836974
Author: Colin Walters <walters verbum org>
Date:   Mon Sep 26 18:15:58 2011 -0400

    Split meta section into "system" and "gpu", add report graphs for GPU data

 src/gnome-talos.c |   19 ++++++++++++++-----
 src/report.html   |   48 +++++++++++++++++++++++++++++++++++++++---------
 2 files changed, 53 insertions(+), 14 deletions(-)
---
diff --git a/src/gnome-talos.c b/src/gnome-talos.c
index 656dc2d..2851063 100644
--- a/src/gnome-talos.c
+++ b/src/gnome-talos.c
@@ -164,6 +164,8 @@ static void
 run_collection (GnomeTalosApp *app)
 {
   GError *error = NULL;
+  GVariantBuilder builder;
+  GVariant *meta;
   GVariant *sysinfo;
   GVariant *gpu_meta;
 
@@ -184,17 +186,24 @@ run_collection (GnomeTalosApp *app)
                                   "[", 1, NULL, NULL, &error))
     fatal_gerror (&error);
 
+  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
+
   sysinfo = gnome_talos_acquire_meta ();
-  if (!write_variant (sysinfo, NULL, (GOutputStream*)app->out, &error))
-    fatal_gerror (&error);
-  g_variant_unref (sysinfo);
+  g_variant_builder_add (&builder, "{sv}",
+                         "system",
+                         sysinfo);
 
   gpu_meta = gnome_talos_acquire_gpu_meta (&error);
   if (!gpu_meta)
     fatal_gerror (&error);
-  if (!write_variant (gpu_meta, NULL, (GOutputStream*)app->out, &error))
+  g_variant_builder_add (&builder, "{sv}",
+                         "gpu",
+                         gpu_meta);
+
+  meta = g_variant_builder_end (&builder);
+  if (!write_variant (meta, NULL, (GOutputStream*)app->out, &error))
     fatal_gerror (&error);
-  g_variant_unref (gpu_meta);
+  g_variant_unref (meta);
 
   if (!g_output_stream_write_all ((GOutputStream*)app->out,
                                   ",\n", 2, NULL, NULL, &error))
diff --git a/src/report.html b/src/report.html
index efa1c63..749bf97 100644
--- a/src/report.html
+++ b/src/report.html
@@ -47,31 +47,61 @@
         
         return [system, user, self];
       }
- 
-      $(document).ready(function () {
-        $("#system-uuid")[0].appendChild(document.createTextNode(data[0].uuid));
-        $("#system-ram")[0].appendChild(document.createTextNode(data[0].memtotal));
 
+      function initRSSGraph() {
         var systemRSS = [];
         var userRSS = [];
         var selfRSS = [];
         for (var i = 1; i < data.length; i++) {
           var rssData = getRSSForSnapshot(data[i]);
-          systemRSS.push([i, rssData[0]]);
-          userRSS.push([i, rssData[1]]);
-          selfRSS.push([i, rssData[2]]);
+          systemRSS.push([i-1, rssData[0]]);
+          userRSS.push([i-1, rssData[1]]);
+          selfRSS.push([i-1, rssData[2]]);
+        }
+        $.plot($("#rss-graph"), [ { label: 'System RSS', data: systemRSS }, { label: 'User RSS', data: userRSS },
+	  		          { label: 'Talos RSS', data: selfRSS } ]);
+      }
+
+      function initGPUGraph() {
+        var gemObjects = []; 
+        var gemBytes = []; 
+
+        for (var i = 1; i < data.length; i++) {
+          var meta = data[i][0];
+          var snapshot = data[i][1];
+	  var i915snapshot = snapshot.gpu.i915;
+          gemObjects.push([i-1, i915snapshot['gem-object-count']]);
+          gemBytes.push([i-1, i915snapshot['gem-object-bytes']]);
         }
-      $.plot($("#rss-graph"), [ { label: 'System RSS', data: systemRSS }, { label: 'User RSS', data: userRSS },
-			        { label: 'Talos RSS', data: selfRSS } ]);
+
+        $.plot($("#gpu-gem-objects"),
+	       [ { label: 'GEM Objects', data: gemObjects } ]);
+        $.plot($("#gpu-gem-bytes"),
+	       [ { label: 'GEM Bytes', data: gemBytes } ]);
+      }
+ 
+      $(document).ready(function () {
+        $("#system-uuid")[0].appendChild(document.createTextNode(data[0].system.uuid));
+        $("#system-ram")[0].appendChild(document.createTextNode(data[0].system.memtotal));
+        $("#version")[0].appendChild(document.createTextNode(data[0].system.version));
+
+        initRSSGraph();
+        initGPUGraph();
      });
     </script>
   </head>
   <body>
     <h1>Report for @SRC_FILE@:</h1>
+    <p><tt>Talos version: <span id="version"></span></tt></p>
     <p><tt>System UUID: <span id="system-uuid"></span></tt></p>
     <p><tt>System Total RAM: <span id="system-ram"></span></tt></p>
     <h3>RSS</h3>
     <div id="rss-graph" style="width:800px;height:500px;"></div>
+    <h3>GEM Objects</h3>
+    <div id="gpu-gem-objects" style="width:800px;height:500px;"></div>
+    <h3>GEM Bytes</h3>
+    <div id="gpu-gem-bytes" style="width:800px;height:500px;"></div>
+  </body>
   </body>
 </html>
       



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]