Re: gnome-system-monitor does not show CPU speed on ppc64



On Tue, 2010-05-25 at 20:55 -0500, Diego Escalante Urrelo wrote:
> Hi Luciano,
> 
> Quite an interesting read!
> 
> I think you want to ping Benoît Dejean <benoit placenet org> (cc'd) who
> is listed as the maintainer of the module, and also put your report
> (file a new bug) in http://bugzilla.gnome.org and attach any patch you
> come up with.
> 
> If the maintainer or someone else doesn't comment or review your patch
> on a reasonable time feel free to ping here again.
> 
> Thanks for working on this!
> 


Hola Diego,

Gracias! Thank you! I will open a bugzilla as I am working on a proposed
patch for this. I also have another patch in this same code for another
problem where it displays an extra CPU entry at the end for ppc64 that
it shouldn't. I will open a separate bugzilla for that one as well.

> El lun, 24-05-2010 a las 12:36 -0500, Luciano Chavez escribió:
> > Hello,
> > 
> > I am looking at problem reported by one of our test teams. Below is
> > their recreation steps and what they reported:
> > 
> > 1. Launch System Monitor Tool (gnome-system-monitor-2.28.0)
> > 2. Look at "Hardware" item of "System" tabbed section like following sentence:
> > Precessor 0: POWER6 (architected), altivec supported ===> no processor speed
> > 3. In System Monitor Tool window, open help manual via
> > Help->Contents->Introduction and you could see "Processors and speeds"
> > description in "Hardware" item of "System" tabbed section
> > 
> > Here is my analysis:
> > 
> > I took a look at the source for gnome-system-monitor and determined where the
> > strings that are displayed came from. Looking at src/sysinfo.cpp there is this
> > method:
> > 
> >     void load_processors_info()
> >     {
> >       const glibtop_sysinfo *info = glibtop_get_sysinfo();
> > 
> >       for (guint i = 0; i != info->ncpu; ++i) {
> >         const char * const keys[] = { "model name", "cpu" };
> >         gchar *model = 0;
> > 
> >         for (guint j = 0; !model && j != G_N_ELEMENTS(keys); ++j)
> >           model =
> > static_cast<char*>(g_hash_table_lookup(info->cpuinfo[i].values,
> >                                                          keys[j]));
> > 
> >         if (!model)
> >           model = _("Unknown CPU model");
> > 
> >         this->processors.push_back(model);
> >       }
> >     }
> > 
> > It first invokes the glibtop_get_sysinfo() call which comes from the external
> > libgtop to retrieve the system info (I will explain where from shortly) and
> > then uses the keys "model name" and "cpu" to retrieve the corresponding strings
> > in a hash table that correspond to those keys. What is retrieved is what ends
> > up being displayed under the Hardware section.
> > 
> > In the libgtop source we find a file called  sysdeps/linux/sysinfo.c which
> > contains the source for the glibtop_get_sysinfo() which almost wholly contained
> > in the function init_sysinfo() which essentially reads the contents of
> > /proc/cpuinfo into a buffer then parses each line and uses the label before the
> > ":" as the key and the remaining as the value and the labels/keys are loaded
> > into string array and the string values are added into a hash table with the
> > label as the key.
> > 
> > So, looking at the /proc/cpuinfo of a x86_64 system I get the following:
> > 
> > model name      : Intel(R) Xeon(TM) CPU 3.40GHz
> > 
> > as well as ...
> > 
> > cpu MHz         : 3400.000
> > 
> > but on the test system we get
> > 
> > cpu             : POWER6 (architected), altivec supported
> > clock           : 4204.000000MHz
> > 
> > So, as you can see  both do offer separate sysinfo records for the processor
> > speed ("cpu MHz" and "clock") but since only "model name" and "cpu" are looked
> > at and only "model name" contains that extra info, this is why for the ppc64
> > system, it is not displayed though it is separately available from the "clock"
> > record.
> > 
> > I am considering creating a patch for the case when "model name" is not
> > available but "cpu" is which will simply append the "clock" text (if
> > available) to the "cpu" text. Anyone suggest a better or alternative
> > solution?
> > 
> > regards,
> 
> 

-- 
Luciano Chavez <lnx1138 linux vnet ibm com>
IBM Linux Technology Center



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]