|
From: Doug M. <do...@hy...> - 2007-03-29 20:44:16
|
Many thanks Jan, I have committed the change to trunk and branches/=20 SIGAR_1_3 On Mar 29, 2007, at 12:28 PM, Jan Kneschke wrote: > Hi Doug, > > I get > > sigar-test-all.c.98 (unknown): > cpu.user =3D 0, > cpu.sys =3D 0, > cpu.nice =3D 0, > cpu.idle =3D 0, > cpu.wait =3D 0, > cpu.total =3D 0 > > on linux/ia64 (2.4.21-37.EL), 2cpu: > > [0] > info.vendor =3D Intel, > info.model =3D Itanium 2, > info.mhz =3D 1299, > info.cache_size =3D 0 > > The problem with the counters is: > > #define SIGAR_TICK2MSEC(s) ((sigar_uint64_t)(s) * \ > ((sigar_uint64_t)SIGAR_MSEC / sigar->ticks)) > > SIGAR_MSEC =3D 1000 > sigar->ticks =3D 1024 > > SIGAR_MSEC / sigar->ticks =3D 0 > > This turns all the numbers into 0. This is a integer-division. > > Typecasting to double turns it into a floating-point division can =20 > fixes > the problem: > > /* cpu ticks to milliseconds */ > #define SIGAR_TICK2MSEC(s) (sigar_uint64_t)((sigar_uint64_t)(s) * > ((sigar_uint64_t)SIGAR_MSEC / (double)sigar->ticks)) > #define SIGAR_TICK2NSEC(s) (sigar_uint64_t)((sigar_uint64_t)(s) * > ((sigar_uint64_t)SIGAR_NSEC / (double)sigar->ticks)) > > Jan > -- > Jan Kneschke, MySQL GmbH, Radlkoferstr. 2, D-81373 M=FCnchen > Gesch=E4ftsf=FChrer: Hans von Bell, Kaj Arn=F6 - HRB M=FCnchen 162140 > > |