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:
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 :-).
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.
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.