Date: Wed, 16 Jun 2004 22:10:55 +0900 From: YONETANI Tomokazu <qhwt+freebsd-acpi@les.ath.cx> To: nate@root.org Cc: freebsd-acpi@freebsd.org Subject: cx_usage Message-ID: <20040616131055.GA37637@les.ath.cx>
next in thread | raw e-mail | index | archive | help
Hello. What do you think about the following changes? - print 100% instead of 99% when there's only 1 Cx state, and 0% when the sum is zero. - two digits from fractional part of each percentage are shown; my Laptop PC barely enters into C3 state and hw.acpi.cpu.cx_usage is almost always "0% 99% 0%" after revision 1.39. it's now shown as "0.00% 99.96% 0.03%" --- /home/build/freebsd/current/sys/dev/acpica/acpi_cpu.c 2004-06-16 15:27:25.000000000 +0900 +++ acpi_cpu.c 2004-06-16 15:24:38.000000000 +0900 @@ -1046,15 +1051,21 @@ struct sbuf sb; char buf[128]; int i; - u_int sum; + u_int frac, real, sum; - /* Avoid divide by 0 potential error. */ - sum = 1; + sum = 0; for (i = 0; i < cpu_cx_count; i++) sum += cpu_cx_stats[i]; sbuf_new(&sb, buf, sizeof(buf), SBUF_FIXEDLEN); - for (i = 0; i < cpu_cx_count; i++) - sbuf_printf(&sb, "%u%% ", (cpu_cx_stats[i] * 100) / sum); + for (i = 0; i < cpu_cx_count; i++) { + if (sum == 0) + sbuf_printf(&sb, "0%% "); + else { + real = cpu_cx_stats[i] * 100; + frac = (real % sum) * 100; + sbuf_printf(&sb, "%u.%02u%% ", real / sum, frac / sum); + } + } sbuf_trim(&sb); sbuf_finish(&sb); sysctl_handle_string(oidp, sbuf_data(&sb), sbuf_len(&sb), req);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040616131055.GA37637>