This doesn't seem to apply to all SMP systems (or is it kernel version?):

kernel: 2.6.12-10-686-smp



processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 8
model name      : Pentium III (Coppermine)
stepping        : 1
cpu MHz         : 731.523
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 mmx fxsr sse
bogomips        : 1449.98

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 8
model name      : Pentium III (Coppermine)
stepping        : 1
cpu MHz         : 731.523
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 mmx fxsr sse
bogomips        : 1462.27



As for the code, perhaps these changes to your patch would provide with
the required results:


#define UNIPROCESSOR 1


/* dont_count_ht_cpus indicates an option has been set in the config */

if ((n = sysconf(_SC_NPROCESSORS_ONLN) > UNIPROCESSOR &&
dont_count_ht_cpus) {

       /* examine /proc/cpuinfo */

       cores_in_cpuinfo = ....

}


/* if cores_in_cpuinfo reports 0, we're on a system which doesn't report
core_id */

if (cores_in_cpuinfo)

       return (int) cores_in_cpuinfo;

else

       return (int) n;



Also, MAX_CPUS is a hard-coded scalability limit. To avoid that maybe
you could just grab the last "processor" entry and assign an array of
that size. This would also cover hot-plugging CPUs, but might involve a
race in such a setup. What do you guys think?

Cheers,
Alex


James Mcininch wrote:

>
> On SMP machines, each entry in /proc/cpuinfo reports 'core id'
> and 'physical id' in addition to 'processor'. The number of
> 'processor' entries is cpu_count_virtual. The number of distinct
> 'physical id' entries is the number of CPU packages installed
> on the motherboard. The number of distinct 'core id' entries is
> the number of CPU cores.
>
> On non-SMP machines, each entry in /proc/cpuinfo reports
> 'cpu count' (if applicable) to denote how many 'processor'
> entries exist for the one physical CPU (i.e., if 'cpu count' is
> 2, that processor entry is 1/2 of the entries reported for that
> 1 physical CPU). So the sum of 'processor' entries divided by
> their respective 'cpu count' values is the cpu_count_cores and
> cpu_count_physical, and the number of 'processor' entries is the
> cpu_count_virtual.
>
> It's a little daft, but that's the way it seems to work.
>
> My original patch submission didn't handle the non-SMP case --
> I need to fix that.
>
>
> <[EMAIL PROTECTED]> wrote on 03/01/2006 12:26:47 PM:
>
> > From the look of /proc/stat and /proc/cpuinfo in cygwin, I am
> > not sure how you resolve between virtual and real processors.
> > Am I missing something?
> >
> > regards,
> > richard
> >
> > cpu 91283593 0 24818640 2641219155
> > cpu0 33563843 0 13294859 1331802093
> > cpu1 57719750 0 11523781 1309417062
> > page 28101525 3278915
> > swap 28101525 3042074
> > intr 1021797193
> > ctxt 2106977704
> > btime 1139854968
> >
> >
> > processor       : 0
> > vendor_id       : GenuineIntel
> > type            : primary processor
> > cpu family      : 15
> > model           : 2
> > model name      :               Intel(R) Pentium(R) 4 CPU 2.80GHz
> > stepping        : 9
> > brand id        : 9
> > cpu count       : 2
> > apic id         : 0
> > cpu MHz         : 2793
> > fpu             : yes
> > flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
> > mca cmov pat pse36 clfl dtes acpi mmx fxsr sse
> > e2 ss htt tmi pbe cid
> > processor       : 1
> > vendor_id       : GenuineIntel
> > type            : primary processor
> > cpu family      : 15
> > model           : 2
> > model name      :               Intel(R) Pentium(R) 4 CPU 2.80GHz
> > stepping        : 9
> > brand id        : 9
> > cpu count       : 2
> > apic id         : 1
> > cpu MHz         : 2793
> > fpu             : yes
> > flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
> > mca cmov pat pse36 clfl dtes acpi mmx fxsr sse
> > e2 ss htt tmi pbe cid
> >
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] On Behalf Of
> > Jason A. Smith
> > Sent: 01 March 2006 15:42
> > To: James Mcininch
> > Cc: Ganglia Developers
> > Subject: Re: [Ganglia-developers] hyperthreading & cpu_num patch.
> >
> >
> > Hi James,
> >
> > As you mentioned in your bug report:
> >
> > http://bugzilla.ganglia.info/cgi-bin/bugzilla/show_bug.cgi?id=84
> >
> > This has been discussed several times in the mailing lists, like this
> > one last year:
> >
> > http://sourceforge.net/mailarchive/forum.php?forum_id=7186&max_rows=25&s
> > tyle=threaded&viewmonth=200502
> >
> > But as the discussion last year confirms, different people might want it
> > to work in different ways.  The best solution would probably be to patch
> > gmond to report both the number of real and virtual (hyperthreaded) CPUs
> > and have a config option in the webfrontend to display the load based on
> > one of the two CPU counts.
> >
> > ~Jason
> >
> >
> > On Wed, 2006-03-01 at 09:40 -0500, James Mcininch wrote:
> > >
> > > I want to bring attention to Bugzilla item 84 -- a patch submitted to
> > > fix improper reporting of cpu_num on hyperthreaded Intel processors.
> > >
> > > The patch causes it to report the number of CPU cores rather than the
> > > number of virtual CPUs.
> > >
> > --
> > /------------------------------------------------------------------\
> > |  Jason A. Smith                          Email:  [EMAIL PROTECTED] |
> > |  Atlas Computing Facility, Bldg. 510M    Phone:  (631)344-4226   |
> > |  Brookhaven National Lab, P.O. Box 5000  Fax:    (631)344-7616   |
> > |  Upton, NY 11973-5000                                            |
> > \------------------------------------------------------------------/
> >
> >
> >
> >
> > -------------------------------------------------------
> > This SF.Net email is sponsored by xPML, a groundbreaking scripting
> > language that extends applications into web and mobile media. Attend the
> > live webcast and join the prime developer group breaking into this new
> > coding territory!
> > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
> > _______________________________________________
> > Ganglia-developers mailing list Ganglia-developers@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/ganglia-developers
> >
> >
> > ------------------------------------------------------------------------
> > For more information about Barclays Capital, please
> > visit our web site at http://www.barcap.com.
> >
> >
> > Internet communications are not secure and therefore the Barclays
> > Group does not accept legal responsibility for the contents of this
> > message.  Although the Barclays Group operates anti-virus programmes,
> > it does not accept responsibility for any damage whatsoever that is
> > caused by viruses being passed.  Any views or opinions presented are
> > solely those of the author and do not necessarily represent those of
> the
> > Barclays Group.  Replies to this email may be monitored by the Barclays
> > Group for operational or business reasons.
> >
> > ------------------------------------------------------------------------
> >

Reply via email to