cx_usage
YONETANI Tomokazu
qhwt+freebsd-acpi at les.ath.cx
Sat Jun 19 10:19:08 GMT 2004
On Fri, Jun 18, 2004 at 07:27:57PM -0700, Nate Lawson wrote:
> On Fri, 18 Jun 2004, YONETANI Tomokazu wrote:
> > On Wed, Jun 16, 2004 at 10:10:55PM +0900, YONETANI Tomokazu wrote:
> > > 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%"
> >
> > Actually, cpu_cx_stats[i] * 100 may not fit in u_int and would print
> > incorrect value as values grow. Please try this instead.
>
> Thank you. I committed this with minor changes.
Thanks. But I found myself stupid:
whole = cpu_cx_stats[i] * 100;
cpu_cx_stats[i] needs a cast into u_int64_t, otherwise multiplication
is still performed as 32bit-integer and will overflow before assigned
to `whole', and using u_int64_t variables is worthless. I tend to assume
that there's an automatic upgrade of precision to that of the left-hand
side operand, but it's pretty wrong. I should have noticed this while
testing the patch if I kept the laptop turned on a bit longer.
I'm sorry.
More information about the freebsd-acpi
mailing list