Hi Aubrey, how've you been ?

I just found up a bug that's causing issues with the c-state report on 
sun4v systems. It's an int32_t to int64_t casting issue, I still need to 
test the fix on more systems, but it looks something like this:

--- a/usr/src/cmd/powertop/common/cpuidle.c     Thu Oct 08 14:08:48 2009 
-0700
+++ b/usr/src/cmd/powertop/common/cpuidle.c     Fri Oct 09 00:16:25 2009 
-0700
@@ -219,12 +219,12 @@
         dtrace_aggdesc_t        *aggdesc = data->dtada_desc;
         dtrace_recdesc_t        *rec;
         uint64_t                n = 0;
-       int32_t                 state;
+       int64_t                 state;
         int                     i;

         rec = &aggdesc->dtagd_rec[1];
         /* LINTED - alignment */
-       state = *(int32_t *)(data->dtada_data + rec->dtrd_offset);
+       state = *(int64_t *)(data->dtada_data + rec->dtrd_offset);

         if (strcmp(aggdesc->dtagd_name, "number") == 0) {
                 for (i = 0; i < g_ncpus; i++) {


Just wanted to give you a heads up, I'll do more testing and may try to 
get this fixed in the current build (closing on Monday).

cheers,
Rafael

Reply via email to