From c6b26c5a406225868f05672949bcc4997c94c3ab Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Tue, 27 Aug 2013 17:40:45 +0100 Subject: overlay: Scale the CPU busy value by the numer of active cores Having 100% always mean one processor fully utilised is much easier to understand (than having to remember how many cores are on each machine and scale appropriately). Signed-off-by: Chris Wilson --- overlay/cpu-top.c | 10 ++++++++++ overlay/cpu-top.h | 2 ++ overlay/overlay.c | 4 ++-- 3 files changed, 14 insertions(+), 2 deletions(-) (limited to 'overlay') diff --git a/overlay/cpu-top.c b/overlay/cpu-top.c index 4e31da1b..c134d409 100644 --- a/overlay/cpu-top.c +++ b/overlay/cpu-top.c @@ -25,10 +25,20 @@ #include #include #include +#include #include #include "cpu-top.h" +int cpu_top_init(struct cpu_top *cpu) +{ + memset(cpu, 0, sizeof(*cpu)); + + cpu->nr_cpu = sysconf(_SC_NPROCESSORS_ONLN); + + return 0; +} + int cpu_top_update(struct cpu_top *cpu) { struct cpu_stat *s = &cpu->stat[cpu->count++&1]; diff --git a/overlay/cpu-top.h b/overlay/cpu-top.h index 8d630fd9..c91814fd 100644 --- a/overlay/cpu-top.h +++ b/overlay/cpu-top.h @@ -29,6 +29,7 @@ struct cpu_top { uint8_t busy; + int nr_cpu; int count; struct cpu_stat { @@ -37,6 +38,7 @@ struct cpu_top { } stat[2]; }; +int cpu_top_init(struct cpu_top *cpu); int cpu_top_update(struct cpu_top *cpu); #endif /* CPU_TOP_H */ diff --git a/overlay/overlay.c b/overlay/overlay.c index 08b90aef..a457a409 100644 --- a/overlay/overlay.c +++ b/overlay/overlay.c @@ -143,8 +143,8 @@ static void init_gpu_top(struct overlay_context *ctx, }; int n; + cpu_top_init(>->cpu_top); gpu_top_init(>->gpu_top); - memset(>->cpu, 0, sizeof(gt->cpu)); chart_init(>->cpu, "CPU", 120); chart_set_position(>->cpu, PAD, PAD); @@ -222,7 +222,7 @@ static void show_gpu_top(struct overlay_context *ctx, struct overlay_gpu_top *gt y = PAD + 12 - 2; cairo_set_source_rgba(ctx->cr, 0.75, 0.25, 0.75, 1.); cairo_move_to(ctx->cr, PAD, y); - sprintf(txt, "CPU: %3d%% busy", gt->cpu_top.busy); + sprintf(txt, "CPU: %3d%% busy", gt->cpu_top.busy * gt->cpu_top.nr_cpu); cairo_show_text(ctx->cr, txt); y += 14; -- cgit v1.2.3