Le 13/09/2011 21:51, TERRY DONTJE a écrit :

On 9/13/2011 9:23 AM, Brice Goglin wrote:
Le 12/09/2011 21:01, Brice Goglin a écrit :
Le 09/09/2011 13:25, TERRY DONTJE a écrit :
On 9/8/2011 3:10 PM, Brice Goglin wrote:
Hello Terry,

Indeed there's nothing like this as of today. We talked about it in the past but it's not very easy to implement on Linux (see below) so we forgot about it until somebody complained.

Adding infos would certainly be fine. I think it should rather be "CPUType" and "CPUModel" since existing infos have no underscore in their name if I remember correctly. You could also set object->name to a combination of type and model. Socket looks like the right object to put this. Maybe even use "Model" and "Type" as the info names then?

The reason it's not easy on Linux is that we usually take infos from either sysfs, or /proc/cpuinfo if sysfs isn't available, but not from both. Processor names are only in /proc/cpuinfo IIRC. So we'd need to mix sysfs and /proc/cpuinfo. Not easy with the current code, especially if you can't assume that all sockets are similar. But definitely something that I will do at some point.


The way info objects would be attached to a Socket object I assume it would be ok to just attach such an object under Solaris but not not for the other OSes.  Since one can look for the named object and it is either going to be there or not :-).

Anyway, I'll play around with this for Solaris.

Looking at the code, you might want to drop hwloc_setup_level() and copy it back into the caller. It will make the addition of info attributes much easier. I am looking at the Linux side.

I just pushed some code that will make this much easier on Linux (I may change the Solaris code similarly when I'll take time to test on a real solaris machine).

Now I have a patch that reads the CPU vendor and model in /proc/cpuinfo (x86 only for now) and use them to set Socket info attributes (CPUVendor and CPUModel) and name (CPUVendor+CPUModel).

Before I push this, we need to clarify what we want. You were talking about "CPUType" and "CPUModel". Can you give some example of what it would look like under Solaris? I want to compare to what I can get on Linux.

Both type and model are character strings.  An example of what I currently store in the sysinfo structures are:

type = "SPARC"
model = "SPARC64_VI"

Other values for model are "T1", "T2", "SPARC64_VII"...

What about Solaris on non-sparc machines ?