From d9901e7019b56f128b1b13b8a0c496a25bd95472 Mon Sep 17 00:00:00 2001 From: Stefan Sauer Date: Thu, 18 Sep 2014 08:28:48 +0200 Subject: [PATCH] stats: fix cpu stats printing Only print them if we have them. Also scale them by 10.0 as the are in per-mille now. --- tools/gst-stats.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/tools/gst-stats.c b/tools/gst-stats.c index 4a49df5..95bba8c 100644 --- a/tools/gst-stats.c +++ b/tools/gst-stats.c @@ -42,6 +42,7 @@ static guint64 num_buffers = 0, num_events = 0, num_messages = 0, num_queries = static guint num_elements = 0, num_bins = 0, num_pads = 0, num_ghostpads = 0; static GstClockTime last_ts = G_GUINT64_CONSTANT (0); static guint total_cpuload = 0; +static gboolean have_cpuload = FALSE; typedef struct { @@ -120,6 +121,7 @@ get_thread_stats (guint id) if (G_UNLIKELY (!stats)) { stats = g_slice_new0 (GstThreadStats); + stats->tthread = GST_CLOCK_TIME_NONE; g_hash_table_insert (threads, GUINT_TO_POINTER (id), stats); } return stats; @@ -401,6 +403,7 @@ do_proc_rusage_stats (GstStructure * s) gst_structure_get (s, "ts", G_TYPE_UINT64, &ts, "average-cpuload", G_TYPE_UINT, &total_cpuload, NULL); last_ts = MAX (last_ts, ts); + have_cpuload = TRUE; } /* reporting */ @@ -467,8 +470,10 @@ print_thread_stats (gpointer key, gpointer value, gpointer user_data) return; printf ("Thread %p Statistics:\n", key); - printf (" Time: %" GST_TIME_FORMAT "\n", GST_TIME_ARGS (stats->tthread)); - printf (" Avg CPU load: %u %%\n", stats->cpuload); + if (GST_CLOCK_TIME_IS_VALID (stats->tthread)) { + printf (" Time: %" GST_TIME_FORMAT "\n", GST_TIME_ARGS (stats->tthread)); + printf (" Avg CPU load: %4.1f %%\n", (gfloat) stats->cpuload / 10.0); + } puts (" Pad Statistics:"); g_slist_foreach (node, print_pad_stats, key); @@ -697,7 +702,9 @@ print_stats (void) printf ("Number of Message sent: %" G_GUINT64_FORMAT "\n", num_messages); printf ("Number of Queries sent: %" G_GUINT64_FORMAT "\n", num_queries); printf ("Time: %" GST_TIME_FORMAT "\n", GST_TIME_ARGS (last_ts)); - printf ("Avg CPU load: %u %%\n", (guint) total_cpuload); + if (have_cpuload) { + printf ("Avg CPU load: %4.1f %%\n", (gfloat) total_cpuload / 10.0); + } puts (""); /* thread stats */ -- 2.7.4