From cbef4a601f5c076bd0068239d6a26a82298737f5 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 19 Apr 2022 17:49:46 +0200 Subject: [PATCH] pw-top: improve error output Print +++ when the node was signal/awake but not awake/finish. Print --- otherwise. --- src/tools/pw-top.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/tools/pw-top.c b/src/tools/pw-top.c index 990668a37..3fb259727 100644 --- a/src/tools/pw-top.c +++ b/src/tools/pw-top.c @@ -231,7 +231,9 @@ static int process_follower_block(struct data *d, const struct spa_pod *pod, str static const char *print_time(char *buf, size_t len, uint64_t val) { if (val == (uint64_t)-1) - snprintf(buf, len, " *** "); + snprintf(buf, len, " --- "); + else if (val == (uint64_t)-2) + snprintf(buf, len, " +++ "); else if (val < 1000000llu) snprintf(buf, len, "%5.1fµs", val/1000.f); else if (val < 1000000000llu) @@ -244,7 +246,9 @@ static const char *print_time(char *buf, size_t len, uint64_t val) static const char *print_perc(char *buf, size_t len, uint64_t val, float quantum) { if (val == (uint64_t)-1) { - snprintf(buf, len, " *** "); + snprintf(buf, len, " --- "); + } else if (val == (uint64_t)-2) { + snprintf(buf, len, " +++ "); } else { float frac = val / 1000000000.f; snprintf(buf, len, "%5.2f", quantum == 0.0f ? 0.0f : frac/quantum); @@ -274,11 +278,15 @@ static void print_node(struct data *d, struct driver *i, struct node *n, int y) if (n->measurement.awake >= n->measurement.signal) waiting = n->measurement.awake - n->measurement.signal; + else if (n->measurement.signal > n->measurement.prev_signal) + waiting = -2; else waiting = -1; if (n->measurement.finish >= n->measurement.awake) busy = n->measurement.finish - n->measurement.awake; + else if (n->measurement.awake > n->measurement.prev_signal) + busy = -2; else busy = -1;